动态页支持标签,最完美的解决方法,感谢冬虫草兄的265nn
这个早就写好了,本来不打算放出来的。看到冬虫草兄那么无私的放出了新的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; } //-----------------------------------------------自己添加的,用于动态页使用标签结束
|
[该贴被修改 7 次,最后修改时间 2011-10-28 09:52:52 ]
www.z0791.com 南昌都市网
|