如何在php中获取哈希变量。
我在页面上有一个变量
catalog.php#album=2song=1
如何获取专辑和歌曲值并将它们放入PHP变量中?
答案 0 :(得分:8)
你不能用PHP获得这个值,因为PHP处理服务器端的东西,而URL中的哈希只是客户端,永远不会被发送到服务器。 JavaScript 可以使用window.location.hash
获取哈希值(并且可选地调用包含此信息的PHP脚本,或者将数据添加到DOM中)。
答案 1 :(得分:4)
只需添加@ Alec的答案。
有一个parse_url()
功能:
哪个可以返回fragment - after the hashmark #
。但是,在您的情况下,它将在hashmark后返回所有值:
Array
(
[path] => catalog.php
[fragment] => album=2song=1
)
正如@NullUserException指出的那样,除非事先有url,否则这实际上是毫无意义的。但是,我觉得很高兴知道。
答案 2 :(得分:1)
您可以使用AJAX / PHP。您可以使用javaScript获取哈希并使用PHP加载一些内容。 假设我们正在加载页面的主要内容,因此我们的哈希值为“http://www.example.com/#main”:
我们头脑中的JavaScript:
function getContentByHashName(hash) { // "main"
// some very simplified AJAX (in this example with jQuery)
$.ajax({
url: '/ajax/get_content.php?content='+hash, // "main"
success: function(content){
$('div#container').html(content); // will put "Welcome to our Main Page" into the <div> with id="container"
}
});
}
var hash=parent.location.hash; // #main
hash=hash.substring(1,hash.length); // take out the #
getContentByHashName(hash);
PHP可以有类似的东西:
<?php
// very unsafe and silly code
$content_hash_name = $_GET['content'];
if($content_hash_name == 'main'):
echo "Welcome to our Main Page";
endif;
?>