我正在用 PHP 编写一个坏词过滤器。
我在一个数组中有一个坏词列表,方法 cleanse_text() 是这样写的:
public static function cleanse_text($originalstring){
if (!self::$is_sorted) self::doSort();
return str_ireplace(self::$badwords, '****', $originalstring);
}
对于完全匹配,这很简单,但我还想审查伪装成“ab*d”的词,其中“abcd”是一个坏词。事实证明这有点困难。
这是我的问题:
是否是一个值得使用的坏词过滤器(它是一个面向专业人士的网站,因此需要一定的最低限度的礼仪 - 我本以为)
努力捕捉像“f*ck”这样明显的变通方法是否值得——或者我不应该尝试过滤掉这些变通方法。
上面的 cleanse_text() 方法有没有更好的写法?
最佳答案
我绝对不会为此烦恼。
这是一个面向专业人士的网站,因此您可以假设他们会采取适当的行动。一些节制和执行规则会让任何人都遵守。以 Stack Overflow 为例。即使没有社区管理工具,人们也会被迫做出适当的行为。
它会失败。会有太多的误报(“clbuttic”),并且不可能维护包含所有可能的脏话的列表。替换某些字母(例如:
f*ck
)不会减少它的冒犯性。完全删除这个词会破坏意义,这是误报的一个大问题。考虑关于驴和鸟的讨论。一切都是关于驴子、奶子、胸部和公鸡。
关于php - PHP 中的坏词过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2862916/