Проверить, содержит ли строка слово в PHP?


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

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

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

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

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

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

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

Спасибо

Author: Lucas Matos, 2012-02-03

4 answers

if (strpos($string, $word) === FALSE) {
   ... not found ...
}

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

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

 56
Author: Marc B, 2017-02-16 09:46:35

Использовать 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
}
 18
Author: TimWolla, 2012-02-02 20:04:01
<?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
Author: Vishnu Sharma, 2013-09-17 12:54:28

use 

if(stripos($str,'job')){
   // do your work
}
 1
Author: Ganesh, 2015-10-14 12:36:25