我们可以在服务器端php上获取哈希值吗?

时间:2015-11-18 06:34:24

标签: php codeigniter hashtag

我有这样的网址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'],但它在我的情况下不起作用

4 个答案:

答案 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。