web-dev-qa-db-fra.com

Tester si une chaîne contient un mot en PHP?

En SQL, nous avons NOT LIKE %string%

j'ai besoin de le faire en PHP.

if ($string NOT LIKE %Word%) { do something }

je pense que cela peut être fait avec strpos()

mais je ne pouvais pas comprendre comment ..

j'ai besoin exactement de cette phrase de comparaison en PHP valide.

if ($string NOT LIKE %Word%) { do something }

Merci

26
Lucas Matos
if (strpos($string, $Word) === FALSE) {
   ... not found ...
}

Notez que strpos() est sensible à la casse, si vous voulez une recherche non sensible à la casse, utilisez plutôt stripos() .

Notez également le ===, Forçant un test d'égalité strict. strpos PEUT retourner un 0 valide si la chaîne 'needle' est au début de la 'haystack'. En forçant un contrôle pour un faux booléen réel (aka 0), vous éliminez ce faux positif.

67
Marc B

Utilisez strpos . Si la chaîne n'est pas trouvée, elle renvoie false, sinon quelque chose qui n'est pas false. Veillez à utiliser une comparaison de type sécurisé (===) comme 0 peut être retourné et c'est une valeur fausse:

if (strpos($string, $substring) === false) {
    // substring is not found in string
}

if (strpos($string, $substring2) !== false) {
    // substring2 is found in string
}
19
TimWolla
use 

if(stripos($str,'job')){
   // do your work
}
1
Ganesh
<?php
//  Use this function and Pass Mixed string and what you want to search in mixed string.
//  For Example :
    $mixedStr = "hello world. This is john duvey";
    $searchStr= "john";

    if(strpos($mixedStr,$searchStr)) {
      echo "Your string here";
    }else {
      echo "String not here";
    }
1
Vishnu Sharma