楼主最好说一下想做什么
提供一下相关代码因为这个问题要针对不同情况解决
PHP不能直接取得#后的内容

解决方案 »

  1.   

    我想做个插件,把CTB论坛上的东西,全部生成静态文件。CTB论坛上,为了方便引用,每楼都有一个锚标,就是#1之类的。将论坛生成静态时,也为了方便引用。因此,才想办法获取网页地址后面的#。PHP如果不能获取的话,使用Java,能不能将获取的地址,让PHP使用下。
      

  2.   


    这个是客户端的限制,浏览器自己是不会发送#后面的字符的,所以在服务端做什么工作都是没有用的??所以,楼主要用JavaScript获取后,用Ajax发送数据,才可以的。
      

  3.   


    那你只要在生成静态文件的过程中
    在html中找出连结的锚标就可以(就是字符串搜索)不需要经浏览器取得
      

  4.   

    设想下:
    CTB论坛与论坛静态网页在不同目录。
    1、显示帖子:http://abc.com/index.php?tid=10#1
    其对应的静态网页名是:10.htm
    2、静态网页目录中使用index.php处理GET的信息。
    a,j是否为1,是则进行PHP处理。否,Java处理。Java处理:
    使用Java获取后面#的内容,将信息格式化后重新再提交给本身。如index.php?tid=10&miaobiao=1&j=1
    在这里,说明下,miaobiao,为锚标信息。j=1时,说明是2次提交。PHP处理:
    顺利读取网页地址的GET值。
    并使用PHP的内置跳转,10.htm#1说半天,我自己也迷了,思路是这个,问题是,前面的Java处理不好整,得想想办法。以下是源PHP显示静态源码:
    <?php
    $S_zf_shuzu = "QL2_";
    //QL2_1_27,2
    if (isset($_GET['mods'])){
    switch($_GET['mods']){
    case "topicdisplay"://帖子内容显示
    echo "topicdisplay <br>";
    if (isset($_GET['action']) and $_GET['action']=="say"){//显示公告
    if (isset($_GET['forumid'])){
    $S_zf_shuzu .= $_GET['forumid']."_say";
    }else{
    $S_zf_shuzu .= "all_say";}
    }else{
    if (isset($_GET['forumid'])){//获取版块ID
    $S_zf_shuzu .= $_GET['forumid'];
    if (isset($_GET['postid'])){//获取帖子ID
    $S_zf_shuzu .= "_".$_GET['postid'];
    if (isset($_GET['p'])){//获取页数
    $S_zf_shuzu .=",".$_GET['p'];
    }else{//默认为第一页
    $S_zf_shuzu .=",1";}
    }
    }else{//forumid无值时显示第1个版块
    $S_zf_shuzu .="1";}
    }
    break; case "forumdisplay"://版块内容显示
    echo "forumdisplay<br>";
    if (isset($_GET['forumid'])){//获取版块ID
    $S_zf_shuzu .= $_GET['forumid'];
    }else{//forumid无值时显示第1个版块
    $S_zf_shuzu .="1";} if (isset($_GET['action'])){//显示分类版块
    if (isset($_GET['catId'])){
    $S_zf_shuzu =$_GET['catId'];
    }else{$S_zf_shuzu="index";}
    }
    break; case "others"://帮助信息显示
    echo "others<br>";
    if (isset($_GET['action'])){
    $S_zf_shuzu .= $_GET['action'];
    }else{
    $S_zf_shuzu .= "ctbhelp";}
    break; case "member":
    echo "member<br>";
    if (isset($_GET['action']) and isset($_GET['id'])){
    $S_zf_shuzu .= "info_".$_GET['id'];
    }else{
    $S_zf_shuzu .="info_3";}
    break; default:
    $S_zf_shuzu = "index";
      }
    }else{
    $S_zf_shuzu="index";}
    $S_zf_shuzu.=".htm";
    echo $S_zf_shuzu;
    ?>演示方式:?mods=forumdisplay&forumid=9
    将CTB论坛的地址,转义成HTM文件名。
      

  5.   

    这样根本不需要处理吧你另存http://abc.com/index.php?tid=10 为 10.htm
    路径用10.htm#1
    效果不会变的那个标签浏览器会自动跟进
      

  6.   

    但问题是,需要PHP对信息处理下。地址,index.php?tid=10#1处理后才能得到10.htm,及#1。