PHP-获取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会自动解码查询字符串,并将其放入$_GETURL没有更改,您只需在$_GET变量中获得PHP脚本可用的查询字符串的解码值

此外,浏览器可能会决定在地址栏中以解码的形式显示URL,以提高可用性/可读性。这并不意味着实际的URL包含@&'个字符。