web-dev-qa-db-de.com

Testen Sie, ob eine Zeichenfolge ein Wort in PHP enthält?

In SQL haben wir NOT LIKE %string%

ich muss dies in PHP tun.

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

ich denke, das geht mit strpos()

aber konnte nicht herausfinden, wie ..

ich brauche genau diesen Vergleichssatz in gültigem PHP.

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

Vielen Dank

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

Beachten Sie, dass strpos() zwischen Groß- und Kleinschreibung unterscheidet. Wenn Sie eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchführen möchten, verwenden Sie stattdessen stripos() .

Beachten Sie auch den ===, Der einen strengen Gleichheitstest erzwingt. strpos KANN einen gültigen 0 zurückgeben, wenn sich die 'Nadel'-Zeichenfolge am Anfang des' Heuhaufens 'befindet. Indem Sie eine Prüfung auf ein tatsächliches boolesches false (aka 0) erzwingen, beseitigen Sie dieses falsch positive Ergebnis.

67
Marc B

Verwenden Sie strpos . Wenn die Zeichenfolge nicht gefunden wird, wird false zurückgegeben, andernfalls wird etwas zurückgegeben, das nicht false ist. Verwenden Sie unbedingt einen typsicheren Vergleich (===) wie 0 kann zurückgegeben werden und ist ein falscher Wert:

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