我在php中运行arround get url
我的网址是
http://localhost/my__file.php?location=http://www.testsite.com/photo-gifts/custom_photo_necklace_oval_charm#design=68793492
当我使用
打印网址时$_GET['location'];
仅打印
http://www.testsite.com/photo-gifts/custom_photo_necklace_oval_charm
它没有显示我的完整网址,即#design = 68793492
请帮我解决这个问题
答案 0 :(得分:3)
由#
分隔的最后一部分是片段,它永远不会提交给服务器。您应 URL编码整个location
值,以便保留特殊字符/失去其含义。
答案 1 :(得分:1)
PHP不会检测到锚标记(#example),因为它不会传递给服务器...
您需要使用JavaScript window.location.hash
答案 2 :(得分:1)
您需要对位置参数进行编码。
首先使用php urlencode函数对url进行编码。然后将编码值作为get参数传递。 “#”和“=”字符需要编码。编码整个URL总是更好。
对于您的示例,请尝试
http://localhost/my__file.php?location=http%3A%2F%2Flocalhost%2Fmy__file.php%3Flocation%3Dhttp%3A%2F%2Fwww.testsite.com%2Fphoto-gifts%2Fcustom_photo_necklace_oval_charm%23design%3D68793492
答案 3 :(得分:1)
在你的网址中用#
替换%2C
或使用urlencode
答案 4 :(得分:0)
在php中#之后你无法捕获值 但是如果你用#值传递编码的位置值,你就可以得到这个值。