【转】php获取url井号后的参数(描点#后参数)

来源:互联网 发布:优化一个关键词多少钱 编辑:程序博客网 时间:2024/06/15 11:57

该文章转自

有时候我们需要获取url井号后的参数(即描点#后的参数),如下面的链接:
http://www.xindingyue.com/example/#comment-1314

现在要获取#号后面的comment-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涉及到不是单页的事。

原创粉丝点击