假设URL为:

www.example.com/?val=1#part2

PHP可以使用GET数组读取请求变量val1。

哈希值part2也是可读的吗?或者这仅仅取决于浏览器和JavaScript?


当前回答

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

无论如何,您可以使用parse_url()将URL解析为位,包括片段部分,但这显然不是您的情况。

其他回答

我认为哈希值只在客户端使用,所以在php中无法获得。

你可以用javascript重定向到PHP。

URI中#后面的部分被称为“片段”,根据定义,仅在客户端可用/处理(参见https://en.wikipedia.org/wiki/Fragment_identifier)。

在客户端,可以使用带有window.location.hash的javaScript进行访问。

我们也可以用另一种方法来做,比如首先从js中获取哈希值,然后使用该参数调用ajax,可以做任何我们想做的事情

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

无论如何,您可以使用parse_url()将URL解析为位,包括片段部分,但这显然不是您的情况。

答案是否定的。

散列的主要目的是滚动到已定义书签的页面的某个部分。当页面加载时,滚动到此部分。

浏览将滚动,使该行成为页面中第一个可见内容,这取决于该行以下有多少内容。

是的,javascript可以访问它,然后一个简单的ajax调用就可以做到这一点