纠正了自己的错误想法--DZ论坛文字过滤做法!

公司项目需要文字的过滤系统,于是我第一反应将敏感字词入库,然后用待过滤string去数据库中select  like %string%

但是经过现实的检查这样的做法是错误的。

字库中的字是小的集合,而待过滤的string是大的集合,怎么能用大集合去匹配小集合呢?

于是我找来DZ论坛的源码研究了一下,发现他的做法相对科学。于是就有了club-fish现在的敏感词过滤系统。

第一步:

还是将敏感词入库

第二步:

将敏感词全部提取出来按一定格式存放在文本文件中(cache)

第三步:

这个是匹配前的准备,将cache中的敏感词组合成正则。

第四步:

用上一步生成的正则去匹配待过滤string,产生结果。

参考程序discuzcode.func.php中的

function censor($message)

humen1 Tech