帝国论坛帝国网站管理系统交流区帝国CMS使用交流动态页支持标签,最完美的解决方法,感谢冬虫草兄的265nn 【本版专题贴子】  
 1/9     1 2 3 4 5 6 7 8 9 ›› ›|
主题:动态页支持标签,最完美的解决方法,感谢冬虫草兄的265nn [加入收藏夹]   

loyos
用户头衔:书生

精华贴   :0
发贴数   :49
经验值   :212
注册时间:2006-03-17
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
动态页支持标签,最完美的解决方法,感谢冬虫草兄的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
南昌都市网
2009-01-07 03:21:09 已设置保密 顶部 回复 引用 报告 编辑 删除

thinkfor
用户头衔:举人

精华贴   :1
发贴数   :247
经验值   :1065
注册时间:2006-06-13
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

厉害,。。详细点就更完美了,




2009-01-07 03:48:12 已设置保密 顶部 回复 引用 报告 编辑 删除

重返帝国
用户头衔:进士

精华贴   :0
发贴数   :1285
经验值   :2972
注册时间:2008-09-19
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]





2009-01-07 08:05:13 已设置保密 顶部 回复 引用 报告 编辑 删除

188cn
用户头衔:探花

精华贴   :0
发贴数   :9148
经验值   :21447
注册时间:2008-10-25
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

好东西




2009-01-07 09:20:10 已设置保密 顶部 回复 引用 报告 编辑 删除

hicode
用户头衔:版主

精华贴   :1
发贴数   :21646
经验值   :47915
注册时间:2007-07-20
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

标题加色




2009-01-07 09:38:29 已设置保密 顶部 回复 引用 报告 编辑 删除

忘事无忧
用户头衔:探花

精华贴   :0
发贴数   :10350
经验值   :23592
注册时间:2007-12-26
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

支持




2009-01-07 09:43:18 已设置保密 顶部 回复 引用 报告 编辑 删除

iq251
用户头衔:举人

精华贴   :0
发贴数   :179
经验值   :1037
注册时间:2008-12-29
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

支持一下



【智客家园】【智客娱乐】【智客美图】【智客两性】【智客美文】
2009-01-07 09:57:21 已设置保密 顶部 回复 引用 报告 编辑 删除

17900
用户头衔:举人

精华贴   :0
发贴数   :329
经验值   :862
注册时间:2008-10-14
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]





2009-01-07 11:42:17 已设置保密 顶部 回复 引用 报告 编辑 删除

av男
用户头衔:举人

精华贴   :0
发贴数   :239
经验值   :1060
注册时间:2008-12-27
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

加入收藏,有时间试试




2009-01-07 12:21:24 已设置保密 顶部 回复 引用 报告 编辑 删除

willnet
用户头衔:书生

精华贴   :0
发贴数   :10
经验值   :93
注册时间:2006-03-21
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

很汗颜,,,看不懂




2009-01-07 12:21:36 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/9     1 2 3 4 5 6 7 8 9 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1