本文目录一览:
- 1、Discuz! 文字过滤
- 2、Discuz 如何通过插件实现发帖内容过滤
- 3、discuz论坛如何屏蔽垃圾帖子
Discuz! 文字过滤
方法一:
替换前的内容可以使用限定符 {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.保存即可
Discuz 如何通过插件实现发帖内容过滤
不需要插件,在discuz后台就可以实现
如图所示,在discuz后台选择-内容-词语过滤-新增,这里就可以设置要过滤的词语了
其中可以设置成禁止或者审核,很方便的
discuz论坛如何屏蔽垃圾帖子
设置新注册用户验证,避免注册机,添加多个注册必填项
限制新注册用户发帖时间适量加长时间
再有开启防止灌水的相关设置。
关闭普通注册