此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没有更改,您只需在$_GET
变量中获得PHP脚本可用的查询字符串的解码值。
此外,浏览器可能会决定在地址栏中以解码的形式显示URL,以提高可用性/可读性。这并不意味着实际的URL包含@&'
个字符。