2

我有一个script在我的单词过滤器(一个数组)中检测单词的下面,并确定 astring是否干净。

当单词与空格一起使用时,我下面的内容效果很好。但ifiwritesomething没有空格,它不会检测到。

我怎样才能使它搜索整个字符串而不是单词?我尝试删除该explode功能,但出现了一些错误...

$string = 'goodmorningnoobs';
$array = array("idiot","noob");
if(0 == count(array_intersect(array_map('strtolower', explode(' ', $string)), $array))){

echo"clean";

} else {

echo "unclean";

}

任何人都可以帮忙吗?

4

2 回答 2

3
$clean = true;

foreach ( $array as $word ) {
    if ( stripos($string, $word) !== false ) {
        $clean = false;
        break;
    }
}

echo $clean ? 'clean' : 'unclean';
于 2013-08-29T00:45:19.247 回答
1

怎么样?

$hasWords = preg_match('/'. implode('|', $words) .'/', $string);

echo $hasWords ? 'unclean' : 'clean';
于 2013-08-29T00:51:18.630 回答