Discuz! 中的“词语过滤”
本文发布于 4 年前,部分内容可能已经失去参考价值。
Discuz! 的“词语过滤”支持替换功能,并且借用替换的思想实现禁止发布。
添加关键词举例:
a=b | a 将被替换成 b |
a={BANNED} | 包含 a 的内容将被禁止发布 |
a={MOD} | 包含 a 的内容将进入人工审核通道 |
a | a 将被替换成 ** |
另外注意几个要点:
替换前的内容可以使用限定符 {x} 以限定相邻两字符间可忽略的文字,x 是忽略的字节数。如 "a{1}s{2}s"(不含引号) 可以过滤 "ass" 也可过滤 "axsxs" 和 "axsxxs" 等等。对于中文字符,若使用 GBK、Big-5 版本,每个中文字符相当于 2 个字节;若使用 UTF-8 版本,每个中文字符相当于 3 个字节。
不良词语如果以"/"(不含引号)开头和结尾则表示格式为正则表达式,这时替换内容可用"(n)"引用正则中的子模式,如"/1\d{10}([^\d]+|$)/"替换为"手机(1)"。
不支持通配符。
系统在发帖时判断并替换过滤词语,数据库中保存的是替换后的内容。因此新添加的词语并不会对旧帖产生影响。
该功能对应数据库表:pre_common_word
可能相关的内容