PHP urlencode() 函数用于对 url 进行编码。该函数返回一个字符串,其中包含除 -_ 之外的所有非字母数字字符。
特殊符号替换为百分号 (%) 后跟两个十六进制数字,空格替换为加号 (+) ,替换规则如下:
- 特殊符号 十六进制值
- + 转义符为 %2B
- 空格 转义符为 + 或 %20
- / 转义符为 %2F
- ? 转义符为 %3F
- % 转义符为 %25
- # 转义符为 %23
- & 转义符为 %26
- = 转义符为 %3D
语法
urlencode(string)
参数
string | 必填。 指定要编码的 URL。 |
返回值
返回一个除-_符号的字符串。特殊符号替换为百分号 (%) 后跟两个十六进制数字和空格替换为加号 (+) ,参见上面的替换规则。
它的编码方式与 WWW 表单中发布的数据的编码方式相同,即与 application/x-www-form-urlencoded 媒体类型中的编码方式相同。
这与 RFC 3986 编码(请参阅 rawurlencode() 函数)不同,因为历史原因,空格被编码为加号 (+ ) 标志。
示例:
下面的示例显示了 urlencode() 函数的用法。
<?php
echo urlencode("https://www.yxjc123.com")."\n";
$userinput = "an online learning portal";
echo '<a href="www.yxjc123.com/',
urlencode($userinput), '">';
?>
上述代码的输出将是:
https%3A%2F%2Fwww.yxjc123.com
<a href="www.yxjc123.com/an+online+learning+portal">
示例:
再考虑一个示例,它显示了字符串的编码方式以及已解码。
<?php
$str1 = "https://www.yxjc123.com";
$encoded_str1 = urlencode($str1);
echo "The string is: $str1 \n";
echo "Encoded string: $encoded_str1 \n";
$str2 = "https%3A%2F%2Fwww.yxjc123.com";
$decoded_str2 = urldecode($str2);
echo "\nThe string is: $str2 \n";
echo "Decoded string: $decoded_str2 \n";
?>
上述代码的输出将是:
The string is: https://www.yxjc123.com
Encoded string: https%3A%2F%2Fwww.yxjc123.com
The string is: https%3A%2F%2Fwww.yxjc123.com
Decoded string: https://www.yxjc123.com