比如 http://www.aaa.com/bbb.php?ccc=ddd#eee ,利用$_SERVER我只能取得 http://www.aaa.com/bbb.php?ccc=ddd ,而无法判断最后是否存在#eee。因为我准备在一个abc.php文件前面加上Headers("Location:abc.php#xyz")作转向,如果不能判断当前地址是否存在#参数的话便只能得到死循环,故此求教。

解决方案 »

  1.   

    上面笔误,应是 Header("Location:abc.php#xyz") 。
      

  2.   

    echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
      

  3.   

    楼上兄台也许没看我的说明,REQUEST_URI 我一早就试过了,正是因为搞不定才来这儿请教高人嘛。
      

  4.   

    这么说php里没有能获取锚点信息的函数?
      

  5.   

    不行就用js做
    <script>
    alert(window.location.href);  
    </script>
      

  6.   

    锚只对浏览器有效,不属于服务器端url。所以取不到
    并不会产生死循环
      

  7.   

    昨天我也是经一个朋友提醒才想起anchor信息是不传到服务器的(太糊涂了),所以php的确是没办法获得。js我也试过,比如加onload="window.location.href=...",但因为js也只在客户端运行,所以必须在页面加载完毕后才能转向,对我这种情况来说效果不好。(因为我的页面aaa.php打开时每次都自动跳到下方的一个iframe,而我想在顶部添加一个top anchor,然后通过header默认重定向到aaa.php#top,用了js就变成先跳下去再跳上来的尴尬情况。)后来我改用session添加一个标示,虽然anchor参数的问题解决了,却又因为header在页面iframe未加载完毕前进行转向,导致浏览器报错,看来header重定向的法子是行不通了。真是郁闷...