我的脚本真的需要一个好的坏词过滤器。我已经有一堆不好的词了。但我的问题是它检测到了坏词,换句话说,比如说“测试”是一个坏词,而你说“测试”它仍然会将它视为一个脏话。在我的第二次尝试中,我修复了检测词,但人们可以通过说@test 和“cusswordhere”来绕过它等。
我能做些什么来解决这个问题吗?
我的代码:
function censor($message) {
$badwords = $this->censor; //array containing bad words
$message = @preg_replace('[^A-Za-z0-9 ]','',strtolower(' '.$message.' '));
foreach($badwords as $bad) {
$bad = trim($bad);
if(strpos($message.' ', $bad.' ')!==false) {
if(strlen($bad)>=2) {
return true;
}
}
}
}
目前它没有检测到单词,但你可以通过说@cusshere“cusshere”等内容来绕过它,我能做些什么来解决这个问题?