如何在php中获取#之后的锚点部分

时间:2009-06-23 12:27:57

标签: php

在我的项目中使用LightBox机制时,我得到了一个URL http://nhs/search-panel.php#?patientid=2 我需要通过GET机制从这个收集那个patientid,这可能在PHP吗?

4 个答案:

答案 0 :(得分:8)

简单地说:你不能!浏览器不会将请求中的片段(URL之后的部分)发送到服务器。你必须依赖一些客户端的javascript:也许你可以在使用它之前重写url。

答案 1 :(得分:5)

也许其他人都是对的,一个简单的$ _GET就足够了但是如果你的URL(http://nhs/search-panel.php#?patientid=2)中的#应该在那里你必须用JavaScript(和Ajax,例如JQuery)来做,因为一切据我所知,在#请求中没有包含#。

答案 2 :(得分:1)

如果您检查服务器日志,您应该看到没有浏览器实际传输请求的URL的#anchor部分,因此您无法在服务器端进行提取。

如果您需要了解它,您需要编写一些Javascript以从document.location.href中提取它并将其发送到您的服务器,方法是将其转换为常规GET参数并重定向用户,或者在后台使用XMLHttpRequest / AJAX。

答案 3 :(得分:0)

修改:糟糕,这不起作用。其他海报是正确的,说哈希后的任何东西都不会到达你的服务器。

这些方面应该是你做的事情:

//Get complete URI, will contain data after the hash
$uri = $_SERVER['REQUEST_URI'];

//Just get the stuff after the hash
list(,$hash) = explode('#', $uri);

//Parse the value into array (will put value in $query)
parse_str($hash, $query);

var_dump($query);