0

假设当前 URL 是 www.example.com/example.php?var=test#1

$_SERVER['QUERY_STRING']; 

应该返回

变量=测试#1

但它只是返回

测试

每次在 URL 中插入“#”符号时都会发生这种情况。

我该如何解决?我真的需要获取当前的查询字符串,但我不能使用 $_GET (请不要问为什么解释起来真的太长了)。我也无法控制 URL,我无法控制 url 字符串或在它到达我的服务器之前对其进行编码。

编辑:同样的问题 $_SERVER['REQUEST_URI'];

4

2 回答 2

1

如果您确实需要知道散列是什么,则必须使用document.location.hash包含散列内容的 JavaScript 属性....除此之外,没有办法使用 php 获取散列,因为它没有传递到服务器

于 2013-07-04T00:43:41.347 回答
0

URL 中的#符号表示指向命名锚点的链接,而不是查询字符串的一部分。为了作为查询数据的一部分可靠地传递,它应该被编码为 %23。

于 2013-07-04T00:44:48.657 回答