要在网址中检索字符串后跟#

时间:2011-09-13 10:25:50

标签: php javascript

我有一个表格的网址: - http://www.sboxeppp.com:88/phones.php?iden=true#6786

现在我想在服务器端检索数字(6786),然后是#。我怎么能这样做?

5 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

你做不到。散列后的url部分称为fragment,并且不会将其发送到服务器。它仅适用于客户端脚本。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

使用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中访问当前片段。

答案 4 :(得分:0)

是的,它没有让我发布这个答案 -

var hashNumber = window.location.hash应该有用。

hashNumber = hashNumber.substring(1)

请参阅:

How can you check for a #hash in a URL using JavaScript?