我有这个功能,如果的脏话一个数组$stopwords
停止词功能
function stopWords($string, $stopwords) {
$stopwords = explode(',', $stopwords);
$pattern = '/\b(' . implode('|', $stopwords) . ')\b/i';
if(preg_match($pattern, $string) > 0) {
return true;
}
return false;
}
它似乎好工作中发现,返回true。
问题是,当数组$stopwords
为空(因此没有指定错误词)时,它总是返回true,就像空值被识别为坏词一样,它总是返回true(我认为问题是这个但也许是另一个)。
任何人都可以帮我解决这个问题吗?
感谢
不错的一个!很干净! – Mike 2012-02-07 11:54:44
我担心,这会失败:只有**完整的$ string **是一个停用词时,'in_array()'才会返回true,但如果** $ string **中的某个词是停用词,则不会返回 – 2012-02-07 11:57:38
@EugenRieck:我已经添加了一个解决方案,用于检查整个字符串中的单个事件 – konsolenfreddy 2012-02-07 12:09:16