php urlencode 实现
PHP 中 URL 编码的实现方法
在 PHP 中,URL 编码可以通过内置函数 urlencode() 和 rawurlencode() 实现。两者的主要区别在于对空格的处理方式。
使用 urlencode() 函数
urlencode() 会将空格转换为加号(+),适用于查询字符串的编码。示例:

$string = "Hello World! 123";
$encoded = urlencode($string);
echo $encoded; // 输出:Hello+World%21+123
使用 rawurlencode() 函数
rawurlencode() 遵循 RFC 3986 标准,将空格转换为 %20,适用于路径部分的编码。示例:

$string = "Hello World! 123";
$encoded = rawurlencode($string);
echo $encoded; // 输出:Hello%20World%21%20123
解码 URL 编码
对应的解码函数为 urldecode() 和 rawurldecode():
$decoded = urldecode("Hello+World%21+123"); // 输出:Hello World! 123
$decoded_raw = rawurldecode("Hello%20World%21%20123"); // 输出:Hello World! 123
处理数组或复杂数据
对于数组或嵌套数据,可以结合 http_build_query() 自动编码:
$data = ['name' => 'John Doe', 'age' => 30];
$query = http_build_query($data);
echo $query; // 输出:name=John+Doe&age=30
注意事项
- 编码保留字符(如
/,?,=)时需注意上下文,路径部分建议用rawurlencode()。 - 在构造完整 URL 时,
parse_url()和http_build_url()(需安装扩展)可帮助分段处理。






