码迷,mamicode.com
首页 > 其他好文 > 详细

过滤bbcodes

时间:2014-12-12 15:06:32      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:des   discuz   ar   color   使用   sp   on   文件   bs   

方法一:

    替换前的内容可以使用限定符 {x} 以限定相邻两字符间可忽略的文字,x 是忽略字符的个数。如 "a{1}s{2}s"(不含引号) 可以过滤 "ass" 也可过滤 "axsxs" 和 "axsxxs" 等等。 这个是Discuz官方提供的


方法二:

    我安装了discuz7.0,在他的文件中找到了过滤函数并改写了它,使其能在过滤前先把所有的空格删掉。

    具体改法:

    1.用记事本打开include目录下的discuzcode.func.php文件

    2.找到 if(preg_match($_DCACHE[‘censor‘][‘banned‘], @preg_replace(array("/\[($bbcodes)=?.*\]/iU", "/\[\/($bbcodes)\]/i"), ‘‘, $message).$message)) { showmessage(‘word_banned‘); } 在52行,你可以使用搜索功能(Ctrl+F)找到

    3.在其前面增加一行 $message = str_replace(‘ ‘, ‘‘, $message);

    这就是用来替换空格的 变成这样

    $bbcodes =             ‘b|i|u|color|size|font|align|list|indent|url|email|hide|quote|code|free|table|tr|td|img|swf|attach|payto|float‘.($_DCACHE[‘bbcodes_display‘] ? ‘|‘.implode(‘|‘, array_keys($_DCACHE[‘bbcodes_display‘])) : ‘‘);

    $message = str_replace(‘ ‘, ‘‘, $message);

     if(preg_match($_DCACHE[‘censor‘][‘banned‘], @preg_replace(array("/\[($bbcodes)=?.*\]/iU", "/\[\/($bbcodes)\]/i"), ‘‘, $message).$message)) {

            showmessage(‘word_banned‘);

     }

    4.保存即可

过滤bbcodes

标签:des   discuz   ar   color   使用   sp   on   文件   bs   

原文地址:http://my.oschina.net/JKOPERA/blog/355401

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!