首页 > 网站 > 帮助中心 > 正文

动态页支持标签,最完美的解决方法

2019-09-08 23:51:13
字体:
来源:转载
供稿:网友
  【黑.客.武.林】导读:还是有不少不尽人意的地方,希望大家还能再改进改进。最头痛的是正则表达式,以前重来没用过。所以下面对参数的正则划分还是有瑕疵的,懂行的改改吧,最好能贴出来。$setfun=split(",",$setfun);用逗号区分还凑合用。有时间我再修正还就是函数funzh()写法比较麻烦,没办法,不知道如何使用参数组,不知道...
 
 
  正文:这个早就写好了,本来不打算放出来的。看到冬虫草兄那么无私的放出了新的265nn,感觉我也不能太自私了,嘿嘿!
这个应该要比之前那位兄弟发的更有效率,而且基本上不用改变原代码,方便升级。更重要的是可以用于任何动态页面哦!!
学php2天的作品,还是有不少不尽人意的地方,希望大家还能再改进改进。
最头痛的是正则表达式,以前重来没用过。所以下面对参数的正则划分还是有瑕疵的,懂行的改改吧,最好能贴出来。$setfun=split(",",$setfun);用逗号区分还凑合用。有时间我再修正
还就是函数funzh()写法比较麻烦,没办法,不知道如何使用参数组,不知道php有没有这个功能,参数是不固定的,否则$funname(参数组);就搞定了,不用switch ($funname),高手改进改进。(有人说case太多了,呵呵,没办法,想过用eval,但是没精力去改了,反正现在也凑合用

使用就不用说了吧,以listinfo/index.php为例,结尾这样改,注意db_close();$empire=null;,原本是在前面的
//-------------------------------------修改支持标签
$string=RepBB($string);
//-------------------------------------修改结束

db_close();
$empire=null;
echo stripSlashes($string);
?>



现在终于明白为什么当老师不容易了,哎,本来以为讲得非常清楚了,还是有人要更详细的!!
完整的listinfo看40楼吧,再不懂的话,,我无能为力了。



以下是函数部分
//-----------------------------------------------自己添加的,用于动态页使用标签,这个加在头部那些include下面就可以了
include("../../class/t_functions.php");
function RepBB($listtext){
        global $empire,$dbtbpre;
        $sql=$empire->query("select bq,funname from {$dbtbpre}enewsbq where isclose=0 order by bqid");
        while($r=$empire->fetch($sql))
        {
        $preg_str="/[".$r[bq]."](.+?)[/".$r[bq]."]/is";
        $ccout=preg_match_all($preg_str,$listtext,$listcard);
        if ($ccout){
                for ($i=0;$i<$ccout;$i++){
                        //$listtext=preg_replace($preg_str,funzh($r[funname],$listcard[1][$i]),$listtext);
                              $listtext=str_replace("[".$r[bq]."]".$listcard[1][$i]."[/".$r[bq]."]",funzh($r[funname],$listcard[1][$i]),$listtext);
                }
        }
        }
        return $listtext;
}
function funzh($funname,$setfun){
        global $url,$pagetitle,$classid,$listpage;
        $setfun=split(",",$setfun);
        ob_start();
        switch ($funname){
                case "sys_GetClassNews":
                        sys_GetClassNews($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4],$setfun[5],$setfun[6]);
                        break;
                case "sys_GetClassNewsPic":
                      sys_GetClassNewsPic($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4],$setfun[5],$setfun[6],$setfun[7]);
                        break;
                case "sys_GetPicNews":
                        sys_GetPicNews($setfun[0],$setfun[1],$setfun[2]);
                        break;
                case "sys_GetMorePicNews":
                      sys_GetMorePicNews($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4],$setfun[5],$setfun[6],$setfun[7]);
                        break;
                case "sys_GetAd":
                        sys_GetAd($setfun[0]);
                        break;
                case "sys_GetVote":
                        sys_GetVote($setfun[0]);
                        break;
                case "sys_GetClassNewsText":
                        sys_GetClassNewsText($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4]);
                        break;
                case "sys_GetAutoPic":
                        sys_GetAutoPic($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4],$setfun[5],$setfun[6],$setfun[7]);
                        break;
                case "sys_GetEcmsInfo":
                        sys_GetEcmsInfo($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4],$setfun[5],$setfun[6]);
                        break;
                case "sys_GetSitelink":
                        sys_GetSitelink($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4]);
                        break;
                case "sys_ShowClass":
                        sys_ShowClass($setfun[0]);
                        break;
                case "sys_ShowMap":
                        sys_ShowMap($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4]);
                        break;
                case "sys_IncludeFile":
                        sys_IncludeFile($setfun[0]);
                        break;
                case "sys_ReadFile":
                        sys_ReadFile($setfun[0]);
                        break;
                case "sys_TotalData":
                        sys_TotalData($setfun[0],$setfun[1],$setfun[2]);
                        break;
                case "sys_FlashPixpic":
                      sys_FlashPixpic($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4],$setfun[5],$setfun[6],$setfun[7]);
                        break;
                case "sys_ShowSearchKey":
                        sys_ShowSearchKey($setfun[0],$setfun[1],$setfun[2]);
                        break;
                case "sys_ForSonclassData":
                      sys_ForSonclassData($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4],$setfun[5],$setfun[6],$setfun[7],$setfun[8],$setfun[9],$setfun[10],$setfun[11]);
                        break;
                case "sys_ShowClassByTemp":
                        sys_ShowClassByTemp($setfun[0],$setfun[1],$setfun[2],$setfun[3]);
                        break;
                case "sys_ShowLyInfo":
                        sys_ShowLyInfo($setfun[0],$setfun[1],$setfun[2]);
                        break;
                case "sys_ShowZtData":
                        sys_ShowZtData($setfun[0],$setfun[1],$setfun[2]);
                        break;
                case "sys_PhotoMorepage":
                        sys_PhotoMorepage($setfun[0],$setfun[1],$setfun[2]);
                        break;
                case "sys_EchoCheckboxFValue":
                        sys_EchoCheckboxFValue($setfun[0],$setfun[1]);
                        break;
                case "sys_GetOtherLinkInfo":
                        sys_GetOtherLinkInfo($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4],$setfun[5],$setfun[6]);
                        break;
                case "sys_ShowPlInfo":
                        sys_ShowPlInfo($setfun[0],$setfun[1],$setfun[2],$setfun[3],$setfun[4],$setfun[5]);
                        break;
                case "user_belonging":
                        user_belonging($setfun[0]);
                        break;
                case "sys_ForShowSonClass":
                        sys_ForShowSonClass($setfun[0],$setfun[1],$setfun[2],$setfun[3]);
                        break;
                case "user_liandong":
                        user_liandong($setfun[0],$setfun[1],$setfun[2]);
                        break;
                case "user_changeurl":
                        user_changeurl($setfun[0]);
                        break;
                case "user_urlhtml":
                        user_urlhtml($setfun[0],$setfun[1],$setfun[2]);
                        break;
                default:
                break;
        }
        $string=@ob_get_contents();
        ob_end_clean();
        $string=RepListInfoVars($string,$url,$pagetitle,$classid,$listpage);
        return $string;
}
//-----------------------------------------------自己添加的,用于动态页使用标签结束
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表