我正在尝试将一个脚本放在一起,以便客户端需要能够接受查询字符串中的Web地址而不首先进行urlencoded。一个例子是这样的:
然而,当我回显$ _GET ['url']的内容时,它给了我以下内容:
www.amazon.co.uk/ESET-Smart-Security-User-Year/dp/B005NPFOBM/ref=sr_1_1?s=software
所以基本上它似乎在第一个&符号上窒息 - 我猜是因为它认为它是另一个变量。
除了形式urlencoding,是否有任何技巧让这个工作?我可能会从表单中发布它,但这会破坏脚本的想法。
答案 0 :(得分:1)
对于此特定用例,您应该使用$_SERVER['QUERY_STRING']
。这将一次性为您提供完整的查询字符串,然后您可以自己拆分。
在你的例子中,PHP假设&是下一个GET变量的分隔符。
答案 1 :(得分:0)
您可以询问查询参数,并将其添加到您收到的网址中。按正确的顺序列出$ _GET中的剩余参数,并添加它们添加$ _GET ['url']的结尾。
$_GET['url']
+ '&ie=' + $_GET['ie']
+ '&qid=' + $_GET['qid']
+ '&sr=' + $_GET['sr']
请注意,有一天你可能会获得额外的参数url。 http://foo.com/script.php?url=www.amazon.co.uk/ESET-Smart-Security-User-Year/dp/B005NPFOBM/ref=sr_1_1?s=software&ie=UTF8&qid=1341685530&sr=1-1&url=http://someAmazoneStuff