1
我真的需要一个好的坏词过滤器为我的脚本。我已经有了一堆坏词。但我的问题是,它发现了坏词,换言之,就像说“测试”是一个糟糕的词,而你说“测试”它仍然将它算作一个坏词。在我的第二次尝试中,我修复了检测词,换句话说,但是人们可以通过说@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”绕过它等,有什么我可以做些什么来解决这个问题?
您已经删除了像@和'''这样的字符,那么用户怎么能绕过这个? – 2012-08-10 03:21:54