Проверить, содержит ли строка слово в PHP? - PullRequest
26 голосов
/ 03 февраля 2012

В SQL у нас есть NOT LIKE %string%

мне нужно сделать это в PHP.

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

я думаю, что это можно сделать с помощью strpos()

но не могу понять, как ..

мне нужно именно это предложение сравнения в действительном PHP.

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

Спасибо

Ответы [ 4 ]

67 голосов
/ 03 февраля 2012
if (strpos($string, $word) === FALSE) {
   ... not found ...
}

Обратите внимание, что strpos() чувствителен к регистру, если вы хотите поиск без учета регистра, используйте stripos() вместо.

Также обратите внимание на ===, форсирующий строгий тест на равенство. strpos МОЖЕТ вернуть действительный 0, если строка 'needle' находится в начале 'haystack'. Принудительно проверяя фактическое логическое ложное значение (иначе 0), вы устраняете этот ложный положительный результат.

19 голосов
/ 03 февраля 2012

Использование strpos.Если строка не найдена, она возвращает false, иначе что-то, что не false.Обязательно используйте безопасное сравнение типов (===), так как 0 может быть возвращено, и это ложное значение:

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

if (strpos($string, $substring2) !== false) {
    // substring2 is found in string
}
1 голос
/ 14 октября 2015

use 

if(stripos($str,'job')){
   // do your work
}
1 голос
/ 17 сентября 2013
<?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";
    }
...