php:如何检查字符串是否包含任何列出的关键字?

时间:2009-11-06 04:10:20

标签: php

我有一个字符串数组。

我有一系列关键字。

我循环遍历每个字符串,如果它包含任何关键字,则需要将它们存储到mysql数据库。

目前我正在使用多个stristr(),这很难。

是否可以执行stristr($string, array("ship","fukc","blah"));

之类的操作

5 个答案:

答案 0 :(得分:5)

我建议你使用正则表达式

snipet:

preg_match_all('|(keyword1|keyword2|keyword3)|', $text, $matches);
var_dump($matches);

请参阅preg_match_all的文档以供参考

答案 1 :(得分:3)

foreach ( $strings as $string ) {
  foreach ( $keywords as $keyword ) {
    if ( strpos( $string, $keyword ) !== FALSE ) {
      // insert into database
    }
  }
}

答案 2 :(得分:2)

$to_be_saved = array();
foreach($strings as $string) {
  foreach($keywords as $keyword) {
     if(stripos($string, $keyword) !== FALSE){
        array_push($to_be_saved, $keyword);
     }
  }
}

/*save $to_be_saved to DB*/

答案 3 :(得分:0)

尝试使用in_array()

for ($i = 0 ; $i < count($arrayString); $i++){

  for ($j = 0 ; $j < count($arrayKeyWord); $j++){

    if (in_array($arrayString[$i],$arrayKeyWord[$j]) == true){
      /* mysql code */

    }

  }

}

答案 4 :(得分:0)

if(in_array($string, array("ship","fukc","blah")))
{

}

文档:http://php.net/manual/en/function.in-array.php