如何通过php获取其中包含“#”的URL?

时间:2010-07-13 11:25:08

标签: php url bookmarklet

  

可能重复:
  retrieve the hash in the url with php?

iam有一个页面包含其网址中的书签,如

http://www.abc.com/page_url#bookmark

iam使用$_SERVER['HTTP_HOST']$_SERVER["REQUEST_URI"]获取网址,但仅限gigvng网址 http://www.abc.com/page_url即它没有给我带有书签的链接。

如何在php ????

中获取完整的网址(带有'#'内容)

编辑:

看看我想要做的是我想在我的网址中添加'/',即如果网址是http://www.abc.com/page_url#bookmark,那么我想将其重定向到http://www.abc.com/page_url#bookmark/。当我使用$ _SERVER执行此操作时[“REQUEST_URI”]导致http://www.abc.com/page_url/#bookmark错误。 现在请告诉我该怎么办?

2 个答案:

答案 0 :(得分:6)

大多数浏览器在请求URL时都不发送#fragment,但在内部处理它...因此PHP无法访问该信息

答案 1 :(得分:3)

在请求网页时,浏览器不会向网络服务器发送该信息(称为“片段”)。实际上,它甚至可能根本不会发出请求(如果您点击指向同一页面的链接,而是另一个片段)。

唯一的方法是使用Javascript。您可以使用self.document.location.hash获取片段。然后,您可以发出单独的请求(例如ajax)以向服务器发送该信息。

这将是有用的,例如存储用户在跟踪链接时登陆的部分的统计信息,但您可以根据片段更改页面呈现服务器端的方式(当然,您可以使用javascript,将用户重定向到另一个页面,或者相同)页面在查询字符串中传递片段,以便可以以不同方式呈现它。