我有这样的网址http://localhost/project/test/value#value2
。当我点击这个网址时,我想在服务器上获取#tag值。
我在服务器端试过这样的事情
<?php
function test(param){ ?>
<script>
var className = window.location.hash;
alert(className);
</script>
<?php
} ?>
此警报给我类名,但在页面加载后,如果我将此值分配给php变量,它不起作用。我使用codeigniter所以我尝试了这个current_url()
函数,我也尝试了$_SERVER['REQUEST_URL']
,但它在我的情况下不起作用
答案 0 :(得分:1)
这里的问题是浏览器在请求期间没有发送#tag,所以你没有在任何url get函数的服务器端拥有它,只有你的选项是在js一侧处理#tag并加载必要的html部分通过ajax
答案 1 :(得分:0)
请参阅this
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
答案 2 :(得分:0)
使用parse_url
功能。
$url = 'http://localhost/project/test/value#value2';
$tokens = parse_url($url);
print_r($tokens);
/*will output
Array
(
[scheme] => http
[host] => localhost
[path] => /project/test/value
[fragment] => value2
)
*/
fragment
位就是你所追求的。
答案 3 :(得分:0)
您无法在php中获取来自url的哈希标记。因为浏览器在处理请求期间不发送#tag。