在URL末尾的#text时,$ _SERVER ['REQUEST_URI']不起作用

时间:2011-10-05 09:26:34

标签: php

我知道$ _SERVER ['REQUEST_URI']可以获取当前页面的url,但是它会在url的末尾省略#post。我喜欢在最后使用#blah使页面滚动到某一点。例如:

index.php#answer

使用$ _SERVER ['REQUEST_URI']只返回:

index.php

我怎样才能让它在最后读到#answer?

2 个答案:

答案 0 :(得分:2)

URL哈希永远不会发送到服务器。因此,使用PHP或任何其他服务器端语言检索它是不可能的。

要实现滚动,请将要滚动的元素设置为id="answer" - 然后浏览器将自动跳转到该页面。如果你想使用JavaScript执行平滑滚动,你可以通过location.hash访问哈希 - 有一些不错的jQuery插件可以顺利滚动到指定的元素。

答案 1 :(得分:0)

这不起作用,因为哈希不会被发送到服务器,而是用于页面锚定。

您只能使用PATH_INFOQUERY_STRINGREQUEST_URI,这是前面提到的两者的组合。 QUERY_STRING是URI中可选?之后的部分。

您可以从javascript访问该哈希,如果您真的想通过AJAX发送它。