用php检索网址中的哈希值?

ajs*_*sie 6 javascript php fragment-identifier

有人在SO告诉我,url中的哈希值(#)可以通过php函数parse_url检索吗?这是真的?

我的网站有很多ajax效果,我希望能够将带有哈希的url传递给index.php,以便它可以根据哈希值显示信息.

例如.如果用户在我的网站上点击并导航并且他找到了他想要分享的东西,那么他可以复制该地址并将其发送给他的朋友,当这个人进入时,他看到同样的事情.

我已经尝试使用javascript来保存cookie中的哈希值,但这并不适用于Firefox,而且它在safari中的速度太慢(html会先显示,所以必须第二次刷新页面才能显示正确的内容).

欢迎任何其他解决方案

编辑:我非常困惑..如果我使用parse_url我必须在php中输入网址来获取哈希?那么有什么意义......我的问题是我的朋友是否可以使用#值输入网址并且php可以处理它?这似乎是不,我是对的吗?

Nic*_*lás 11

URL中的哈希甚至没有到达服务器.您无法从服务器端的任何编程语言访问它.


Sam*_*son 6

parse_url()可以从url字符串中获取哈希值.请注意签名:

mixed parse_url ( string $url [, int $component = -1 ] )
Run Code Online (Sandbox Code Playgroud)

你必须已经知道了这个字符串.例如,来自文档:

<?php

  $url = 'http://username:password@hostname/path?arg=value#anchor';
  print_r(parse_url($url));
  echo parse_url($url, PHP_URL_PATH);

?>
Run Code Online (Sandbox Code Playgroud)

输出

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
/path
Run Code Online (Sandbox Code Playgroud)

注意键"fragment"下的条目.