2009-11-06 7 views
3

J'ai un tableau de chaînes.php: comment vérifier si une chaîne contient l'un des mots-clés listés?

J'ai un tableau de mots-clés.

Je fais une boucle sur chaque chaîne, et j'ai besoin de les stocker dans la base de données mysql si elle contient l'un des mots-clés.

actuellement j'utilise plusieurs stristr(), ce qui devient difficile.

est-il possible de faire quelque chose comme stristr($string, array("ship","fukc","blah"));?

Répondre

5

Je vous conseille d'utiliser expresion régulière pour que

snipet:

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

voir la documentation de preg_match_all pour référence

0

essayer d'utiliser 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 */ 

    } 

    } 

} 
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
foreach ($strings as $string) { 
    foreach ($keywords as $keyword) { 
    if (strpos($string, $keyword) !== FALSE) { 
     // insert into database 
    } 
    } 
} 
Questions connexes