0

我正在努力在 php 中获取 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

请帮助我

4

5 回答 5

3

最后分隔的部分#是片段,它永远不会提交给服务器。您应该对整个值进行 URL 编码location,以便保留/丢失特殊字符的含义。

于 2013-05-03T09:14:47.163 回答
1

PHP 不会检测到锚标记(#example),因为它不会传递到服务器...

您将需要使用 JavaScriptwindow.location.hash

于 2013-05-03T09:13:07.350 回答
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
于 2013-05-03T09:14:41.383 回答
1

替换#%2C您的网址或使用urlencode

于 2013-05-03T09:15:39.037 回答
0

您无法在 # 之后在 php 中捕获值,但如果您将使用 # 值传递编码的位置值,您可以获得该值。

于 2013-05-03T09:42:49.123 回答