检索url中后跟#的字符串


To Retrieve string followed by # in a url

我有一个URL的形式:- http://www.sboxeppp.com:88/phones.php?iden=true#6786

现在我想在服务器端检索号码(6786)后面跟着#。我怎么能做到呢?

哈希后面的任何内容只能由客户端脚本访问,因为它不会被发送到服务器,您可以使用parse_url()函数

更多信息:http://php.net/manual/en/function.parse-url.php

你不能那样做。在哈希之后的url部分称为片段,它不会被发送到服务器。它只对客户端脚本可用。

您可以做到这一点的唯一方法是从JavaScript中检索片段(使用window.location.hash),并使用为此目的专门制作的AJAX请求将此信息传递给服务器。当然,这意味着服务器将不得不首先呈现页面,然后获得片段的通知,这是一个与您想要的完全不同的工作流程。

你不能这样做,因为这是一个仅用于浏览器的指令。您可以使用AJAX请求向服务器发送所需的信息。

对,它不允许我把它作为答案发布-

var hashNumber = window.location.hash应该可以工作。

hashNumber = hashNumber.substring(1)

:

如何使用JavaScript检查URL中的#hash ?

使用parse_url:

parse_url('http://www.sboxeppp.com:88/phones.php?iden=true#6786',
          PHP_URL_FRAGMENT);

注意,如果片段在表单的target属性中,它不会被发送到服务器。相反,只需将片段中的信息写入隐藏元素中,如下所示:

<input type="hidden" name="_fragment" value="6786" />

并读取$_POST['_fragment']中的片段。

如果片段是在客户端生成的(或者以某种方式由用户决定),则必须在客户端上创建该元素。您可以使用window.location.hash在JavaScript中访问当前片段。