我试图找到一种方式来保存的网址,并作为一个PHP变量的散列部分。 这个想法是有点古怪,但我承担......
我想从以下网址提取“位置”片段并将其保存为一个PHP变量。
http://www.example.com/#location
然而,在这个讨论环节表示URL的片段只有通过JavaScript访问。
然而这是可能创造一个片段在URL复制链接,PHP解析,然后由国防部重写删除? 所以....
原始地址:
http://www.example.com/location/#location
PHP获得位置变量多亏了简单的“位置”中的URL
阿帕奇然后重写链接:
http://www.example.com/#location
我很好奇,想知道是否有解决这个问题的一种优雅的方式。
你需要使用Javascript来阅读。 有几种不同的选择 - 在网页加载时,你可以使用一个XMLHttpRequest(AJAX请求)告诉什么额外的URL参数为服务器。 Alternatley你可以检查,看看是否有额外的参数(也可以通过JavaScript)的,如果你发现任何,回发到具有这些参数编码到URL本身不同的URL。
这个片段从未发送到服务器,根据此线索对mod_rewrite的论坛。 所以,除非你使用AJAX的事实后更改的页面,这可能是不可能的。
另一个想法是有使用Javascript把散列成$ _GET paramater,然后刷新页面。
你可以通过AJAX发送哈希代码到PHP脚本,做一个即时刷新(页面重新加载)
一旦你通过AJAX发送值的服务器。 您可以在会话中设置的片段值。 当您刷新页面,你可以得到这是在会话和进程设置,则显示相应的内容片断。 因为我们无法通过PHP_SELF / QUERY_STRING等获得片段值我们需要这个来增加我们的网页,例如Gmail的速度。
它包含在从返回的“片段”价值PHP的parse_url功能 。
从PHP手册:
<?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