discuz里的编辑页面一段跳转代码:if($delete && $isfirstpost) {
showmessage('post_edit_delete_succeed', "forumdisplay.php?fid=$fid");
} else {
showmessage('post_edit_succeed', "viewthread.php?tid=$tid&page=$page#pid$pid");
}
但是跳转回来后#后的字符就是不显示,我需要这个锚#pid$pid,但为什么不显示,php把它当注释符了?明明引号里的嘛,看了高版本的discuz代码,测试缺没问题。不知道这个问题的根本原因在哪里?高手或知道的朋友请帮忙回答下,谢谢!!

解决方案 »

  1.   

    我忘了说了是在disucz2.5F的版本上改的 这个很老的版本每个帖子的楼层是没链接的 当然编辑页面跳转后直接到tid而不是pid,discuz以后的版本都没有这个问题(我拿4.0的测试了下) 看来光在后面加上锚是没用的 所有相关代码都要仔细比较才能看出问题在哪里 php初学者 的确是个挑战啊 希望我能通过次问题早日学会和掌握php语言
      

  2.   

    自己解决了:
    function url_rewriter($url, $tag = '', $wml = 0) {
    global $sid;
    $tag = stripslashes($tag);
    if(!$tag || (!preg_match("/^(http:\/\/|mailto:|#|javascript)/i", $url) && !strpos($url, 'sid='))) {
    //if($pos = strpos($url, '#')) {
    //$urlret = substr($url, $pos);
    //$url = substr($url, 0, $pos);
    //} else {
    $urlret = '';
    //}
    //$url .= (strpos($url, '?') ? ($wml ? '&' : '&') : '?').'sid='.$sid.$urlret;
    }
    return $tag.$url;}