欢迎访问宙启技术站
智能推送

PHP函数:urlencode()与urldecode()

发布时间:2023-06-19 01:34:10

URL编码和解码是在直接将字符串放在URL中传递时常用的方法之一。如果一个URL包含某些特殊字符,例如空格、中文字符等,将这个URL路径传递给后台处理程序时很可能导致不可预测的错误。为了避免这些问题,可以使用PHP编程语言中的urlencode()和urldecode()函数。

urlencode()函数

urlencode()函数是将字符串转换为URL安全字符集的编码函数。就像PHP函数名所示,urlencode()函数用于编码URL字符串。它将所有非字母数字字符替换为“%”后跟两个十六进制数字的形式。例如,空格字符将编码为“%20”,英文逗号将编码为“%2C”等。

语法:

string urlencode(string $str)

参数说明:

$str: 必需。要编码的字符串。

返回值:

一个已编码的字符串。

示例:

PHP代码:

$url = 'https://www.example.com/?name=Tom&age=25';
$url_encoded = urlencode($url);
echo $url_encoded;

输出结果:

https%3A%2F%2Fwww.example.com%2F%3Fname%3DTom%26age%3D25

urldecode() 函数

urldecode()函数是将URL编码字符串转换为原始字符串的解码函数。就像PHP函数名所示,urldecode()函数用于解码URL字符串。它返回没有经过URL编码的字符串。

语法:

string urldecode(string $str)

参数说明:

$str: 必需。要解码的字符串。

返回值:

一个已解码的字符串。

示例:

PHP代码:

$url_encoded = 'https%3A%2F%2Fwww.example.com%2F%3Fname%3DTom%26age%3D25';
$url_decoded = urldecode($url_encoded);
echo $url_decoded;

输出结果:

https://www.example.com/?name=Tom&age=25

注意事项:

1. 如果您使用了带有空格的URL,则应先使用urlencode()对整个URL进行编码,再使用urldecode()进行解码。

$url1 = 'https://www.example.com/?name=Tom Smith&age=25';
$url_encoded1 = urlencode($url1);
$url_decoded1 = urldecode($url_encoded1);
echo $url_decoded1;

输出结果:

https://www.example.com/?name=Tom Smith&age=25

2. urlencode()和urldecode()函数不是加密或解密函数。它们只是将字符串转换为URL安全字符集的编码形式。如果您需要加密和解密,请使用md5()或其他加密函数。

总结:

urlencode()和urldecode()函数是用于在传递URL时编码和解码数据的PHP函数。urlencode()函数将非字母数字字符转换为可识别的URL安全字符,而urldecode()函数将URL安全字符转换回非编码字符。这两个函数可以保证在任何情况下都可以将URL正确地传递到后台处理程序中。