我的网站获得了很多ajax效果,我希望能够将带有哈希的url传递给index.php,以便它可以根据哈希值显示信息。
例如。如果用户在我的网站上点击并导航并找到了他想要分享的内容,那么他可以复制该地址并将其发送给他的朋友,当这个人进入时,他会看到同样的事情。
我已经尝试使用javascript来保存cookie中的哈希值但是这不适用于firefox并且它在safari中太慢了(html将首先显示,所以必须第二次刷新页面才能获得正确的内容示出)。
欢迎任何其他解决方案
编辑:我非常困惑..如果我使用parse_url我必须在php中键入url来获取哈希?那么有什么意义......我的问题是我的朋友是否可以使用#值输入网址并且php可以处理它?这似乎是不,我是对的吗?答案 0 :(得分:11)
URL中的哈希甚至获取到服务器。您无法从服务器端的任何编程语言访问它。
答案 1 :(得分:5)
parse_url()
可以从url字符串中获取哈希值。请注意签名:
mixed parse_url ( string $url [, int $component = -1 ] )
您必须已经知道该字符串。例如,来自文档:
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
输出
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
/path
请注意“fragment”键下的条目。
答案 2 :(得分:0)
有人在这里告诉我那个 可以检索url中的hash(#) 通过php函数parse_url?这是 真?
是:
parse_url('http://stackoverflow.com/questions/1957030/retrieve-the-hash-in-the-url-with-php/1957040#1957040', PHP_URL_FRAGMENT); // 1957040
但是如果不知道完整的URL先验,就不能确定服务器端的哈希值,不确定HTTP_REFERER是否保留了这个哈希值(不这么认为)。
答案 3 :(得分:0)
来自php manual的示例:
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>