Php 如何在数组变量中使用Stristr

Php 如何在数组变量中使用Stristr,php,Php,我需要检查数组变量中的单词,我需要如下内容: $banned = array('word1','word2','word3','word4'); if (stristr($title, $banned) !== false) { //$title contains a banned word }else{ //$title not contains any word of $banned variable array } 在PHP的数组中使用函数 in_array

我需要检查数组变量中的单词,我需要如下内容:

$banned = array('word1','word2','word3','word4');


if (stristr($title, $banned) !== false) {

    //$title contains a banned word 

}else{

    //$title not contains any word of $banned variable array

}

在PHP的数组中使用
函数

in_array($title, $banned)

因为您不关心返回值,所以可能需要使用
stripos
基本上类似于
stristr
,但如果字符串包含在
$title
中,它只返回true或false
stristr
将匹配,然后返回

我要提醒大家不要像这里的一些其他答案所建议的那样在数组中使用
,因为只有当
$title
与您的一个禁用词完全匹配时,它才会返回true,而不是包含一个禁用词的长字符串

$banned = array('word1','word2','word3','word4');

$found = false;

foreach($banned as $ban) {
    if( stripos($title, $ban) !== false ) {
        $found = true;
        break;
    }
}

if( $found ) {

    //$title contains a banned word 

}else{

    //$title not contains any word of $banned variable array

}
上面的代码区分大小写,如果希望代码不区分大小写,只需更改:

  if (strpos($title, $banned_item) !== false)
致:


您需要不区分大小写的搜索,因此需要在数组中循环并将函数应用于每个元素:

<?php

$title = "text WORD3 text";
$banned = array('word1','word2','word3','word4');

$flag = 0;
foreach($banned as $word)
{
    if (stristr($title, $word) !== false) {
        $flag = 1;
        break;//no need to loop further
    }
}

if ($flag == 1)
{
    print "title contains a banned word";
}

你看过这个了吗?这是一个评论,不是一个评论answer@MikeW我不同意。我不是严格地回答所问的问题,而是在考虑这个例子,并引导海报找到一个更合适的解决方案。奇怪的是,自从我留下我的评论以来,出现了这么多文字。@MikeW不是真的;看看历史。也许你应该在投票前确定你正在看最新的。@josesanchez要知道这段代码是区分大小写的,与你问题中的函数不同。如果您不想这样做,您应该使用
stripos
而不是
strpos
。是的,我已经将更改为不敏感,再次感谢:)
  if (strpos($title, $banned_item) !== false)
  if (stristr($title, $banned_item) !== false)
<?php

$title = "text WORD3 text";
$banned = array('word1','word2','word3','word4');

$flag = 0;
foreach($banned as $word)
{
    if (stristr($title, $word) !== false) {
        $flag = 1;
        break;//no need to loop further
    }
}

if ($flag == 1)
{
    print "title contains a banned word";
}