php - PHP 中的坏词过滤器?

标签 php filtering

我正在用 PHP 编写一个坏词过滤器。

我在一个数组中有一个坏词列表,方法 cleanse_text() 是这样写的:

public static function cleanse_text($originalstring){
   if (!self::$is_sorted) self::doSort();
   return str_ireplace(self::$badwords, '****', $originalstring);
}

对于完全匹配,这很简单,但我还想审查伪装成“ab*d”的词,其中“abcd”是一个坏词。事实证明这有点困难。

这是我的问题:

  1. 是否是一个值得使用的坏词过滤器(它是一个面向专业人士的网站,因此需要一定的最低限度的礼仪 - 我本以为)

  2. 努力捕捉像“f*ck”这样明显的变通方法是否值得——或者我不应该尝试过滤掉这些变通方法。

  3. 上面的 cleanse_text() 方法有没有更好的写法?

最佳答案

我绝对不会为此烦恼。

  1. 这是一个面向专业人士的网站,因此您可以假设他们会采取适当的行动。一些节制和执行规则会让任何人都遵守。以 Stack Overflow 为例。即使没有社区管理工具,人们也会被迫做出适当的行为。

  2. 它会失败。会有太多的误报(“clbuttic”),并且不可能维护包含所有可能的脏话的列表。替换某些字母(例如:f*ck)不会减少它的冒犯性。完全删除这个词会破坏意义,这是误报的一个大问题。

  3. 考虑关于驴和鸟的讨论。一切都是关于驴子、奶子、胸部和公鸡。

关于php - PHP 中的坏词过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2862916/

相关文章:

php - sql查询重叠时间

php - 不使用utf8编码显示汉字?

Vb.net 组合框自动完成

Python 以 4D 结构过滤信号

python - SQLAlchemy:如果某些记录和关系数据尚不存在,则插入记录

php - MySQL临时表中varchar内的数值

php - 如何分解数组并插入到 MySQL 中

php - 使用 DKIM 对通过 SMTP 发送的邮件进行签名

mysql - 使用 MySQL 的 LIKE 和记录过滤没有变化

php - 为 php/mysql CMS 预处理和后处理多语言用户输入的最佳方法