当位置哈希在URL中时,$ _GET数组为空

时间:2013-07-17 04:00:01

标签: php

当我有这样的网址时:

http://website.com/?var=foo

然后$ _GET数组如下所示:

Array
(
    [var] => foo
)

但是当我有这样的URL时:

http://website.com/#location?var=foo

然后$ _GET数组为空:

Array
(
)

这是正常行为吗?如果是,那么这种情况是否有解决方法?

4 个答案:

答案 0 :(得分:5)

这是获取$_GET

的网址的正确方法
http://website.com/?var=foo#location

主要问题是浏览器甚至不会发送带有片段部分的请求。片段部分在浏览器中解析。所以它可以通过JavaScript访问。

您可以使用 parse_url()

将URL解析为位,包括片段部分

Source

答案 1 :(得分:4)

散列后的值(包括散列)永远不会发送到服务器,所以当你执行

http://website.com/#location?var=foo

服务器永远不会看到#location?var=foo

重新排序字符串,以便查询字符串出现在哈希之前。 ?var=foo#location

答案 2 :(得分:1)

将#location放在最后,以便您的链接成为  http://website.com/? VAR = FOO#位置

答案 3 :(得分:1)

这不是网址的一般格式。

#location是一个片段,它应该跟随查询字符串

http://website.com/?var=foo#location