php使用$ _GET打印当前网址

时间:2013-05-03 09:11:41

标签: php url get

我在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

请帮我解决这个问题

5 个答案:

答案 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中#之后你无法捕获值 但是如果你用#值传递编码的位置值,你就可以得到这个值。