PHP - GET url 编码 @、\ 和 & 符号
PHP - GET url encode @, \ and & sign
这个PHP代码:
$test = '@&\';
echo rawurlencode($test);
结果:
http://example.com/test=%40%26%5C
在 url 中的 $_GET 请求变成这样:
test=@&\
以上是不允许的 $_GET 变量。
我如何仍然使用带有这些值的 $_GET 变量,对它们进行编码并解码回来以获取这些值?
如果您将 URL 创建为 http://example.com/test=%40%26%5C
,那么 URL 肯定会是 http://example.com/test=%40%26%5C
。当 PHP 收到此 URL 的请求时,PHP 自动解码 查询字符串并将其放入 $_GET
。 URL 没有改变,您只需将查询字符串的 解码值 提供给您的 PHP 脚本在 $_GET
变量中。
此外,浏览器 可能 决定在 usability/readability 的地址栏中以解码形式显示 URL。这并不意味着 实际 URL 包含 @&\
个字符。
这个PHP代码:
$test = '@&\';
echo rawurlencode($test);
结果:
http://example.com/test=%40%26%5C
在 url 中的 $_GET 请求变成这样:
test=@&\
以上是不允许的 $_GET 变量。
我如何仍然使用带有这些值的 $_GET 变量,对它们进行编码并解码回来以获取这些值?
如果您将 URL 创建为 http://example.com/test=%40%26%5C
,那么 URL 肯定会是 http://example.com/test=%40%26%5C
。当 PHP 收到此 URL 的请求时,PHP 自动解码 查询字符串并将其放入 $_GET
。 URL 没有改变,您只需将查询字符串的 解码值 提供给您的 PHP 脚本在 $_GET
变量中。
此外,浏览器 可能 决定在 usability/readability 的地址栏中以解码形式显示 URL。这并不意味着 实际 URL 包含 @&\
个字符。