2

任何人都可以建议我如何做到这一点:假设我有$text包含用户输入文本的字符串。我想使用“if 语句”来查找字符串是否包含单词$word1 $word2or之一$word3。如果没有,请允许我运行一些代码。

if ( strpos($string, '@word1' OR '@word2' OR '@word3') == false ) {
    // Do things here.
}

我需要这样的东西。

4

6 回答 6

2
if ( strpos($string, $word1) === false && strpos($string, $word2) === false && strpos($string, $word3) === false) {

}
于 2011-08-06T15:52:55.827 回答
2

更灵活的方法是使用单词数组:

$text = "Some text that containts word1";    
$words = array("word1", "word2", "word3");

$exists = false;
foreach($words as $word) {
    if(strpos($text, $word) !== false) {
        $exists = true;
        break;
    }
}

if($exists) {
    echo $word ." exists in text";
} else {
    echo $word ." not exists in text";
}

结果是:word1 存在于文本中

于 2011-08-06T15:59:38.070 回答
1

定义以下函数:

function check_sentence($str) {
  $words = array('word1','word2','word3');

  foreach($words as $word)
  {
    if(strpos($str, $word) > 0) {
    return true;
    }
  }

  return false;
}

并像这样调用它:

if(!check_sentence("what does word1 mean?"))
{
  //do your stuff
}
于 2011-08-06T16:13:10.090 回答
0

正如我之前的回答

if ($string === str_replace(array('@word1', '@word2', '@word3'), '', $string))
{
   ...
}
于 2011-08-06T16:00:52.697 回答
0

使用它可能会更好striposstrpos因为它不区分大小写。

于 2011-08-06T16:01:35.000 回答
0

你可以使用 preg_match,像这样

if (preg_match("/($word1)|($word2)|($word3)/", $string) === 0) {
       //do something
}
于 2011-08-06T16:08:21.400 回答