首页 > 上网技巧 > 电脑小技巧 > 正文

php获取url井号#后的参数 锚点#后的参数

时间:2014-07-30 20:15 作者:QQ地带 我要评论

有时候我们需要获取url井号后的参数(即描点#后的参数),如下面的链接:
http://www.oicqzone.com/example/#share-1314 
现在要获取#号后面的share-1314 ,如何通过php获取呢?
 
首先声明php是无法直接获取的,因为这是向浏览器客户端发送的参数,在服务端压根就不接受这样的参数,$_SERVER["REQUEST_URI"]变量里是不会包含#号后面的东西的,所以无法像我们平时用php处理url那样了,那到底如何获取呢?
这是向客户端发送的参数,所以获取他只能去到客户端里获取,这里有个思路是先用前台javascript脚本获取后再把获取到的参数写入到cookie,下面是javaScript代码
<script> 
var query = location.href.split('#'); 
document.cookies = 'anchor=' + query[1]; 
<script>
 
再后就可以通过php读取cookie里的参数了:
<?php 
 echo $_COOKIE['anchor']; 
 ?>
 
二者完整结合的代码
<script language="javascript"> 
    query=location.href.split("#"); 
    //简单判断是不是我们要的参数 
    if(query[1] && query[1].indexOf("comment") >= 0){ 
        document.cookie='anchor='+query[1]; 
        if (query[1] != "<?php echo $_COOKIE['anchor']; ?>") { 
            //第一次获取后,cookie还没生效需重载一次 
            window.location.reload(); 
        } 
    } 
 </script> 
 <?php echo $_COOKIE['anchor']; ?>
 
这个用javaScript写入cookie方法获得井号后的参数,方便是很方便,但是第一次载入这个页面,都要reload()一次,用户体验不是很好吧,改用ajax方法可以解决这个问题,如果对ajax方法熟悉的话参考上面的代码加以修改也是很简单的事情,具体就不写代码了,因为ajax涉及到不是单页的事。

标签: php
顶一下
(0)
0%
踩一下
(0)
0%

Google提供的广告