Php $ _GET问题(在&符号后打破字符串)

时间:2011-11-20 17:31:06

标签: php urlencode

我在网址中传递一个加密的字符串然后使用php $ _GET来检索它,但我遇到了一些问题,让我先写一下网址以使其更有意义

http://localhost/marketplace/test.php?sortid=Cd2&V0reSzN$NBh^tjcF!%3CfsAAhIU%28%3C

如果您注意到我在字符串中间有一个&符号,那么当我回显$ _GET时,它会在&符号后打破该值Ex

echo $_GET['sortid']; 

我得到的结果是Cd2并且在&符号之后没有读取任何内容,我能弄明白的问题是php会在'&'之后将所有内容读作不同的参数使用$ _GET时签名

但我不知道如何解决这个问题

由于

2 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为&符号在查询字符串中具有特殊含义。您正在经历的行为完全正常且预期。

如果你想传递包含特殊字符的GET参数,你应该使用urlencode或者像base64编码那样正确编码它们。

答案 1 :(得分:0)

通过URL创建,用%26替换&符,它就可以了。 或者,再次使用base64对编码的字符串进行编码,然后就没有符号。