当我有这样的URL时:
http://website.com/?var=foo
然后$_GET数组如下所示:
Array
(
[var] => foo
)
但当我有这样的URL时:
http://website.com/#location?var=foo
那么$_GET数组为空:
Array
(
)
这是正常行为吗?如果是,是否有解决这种情况的方法?
这是url获取$_GET
值的正确方式
http://website.com/?var=foo#location
主要问题是浏览器甚至不会发送带有片段部分的请求。片段部分在浏览器中直接解析。因此,它可以通过JavaScript访问。
您可以使用parse_URL()将URL解析为位,包括片段部分
源
哈希之后的值(包括哈希)永远不会发送到服务器,所以当您执行时
http://website.com/#location?var=foo
服务器从未看到#location?var=foo
重新排序字符串,使查询字符串出现在哈希之前。?var=foo#location
最后放置#位置,这样您的链接就变成了http://website.com/?var=foo#位置
这不是url的通用格式。
#location
是一个片段,它应该跟在查询字符串后面
http://website.com/?var=foo#location