Для того, чтобы в PHP узнать, содержит ли строка определённое слово, можно воспользоваться нативной функцией strpos:
$str = 'Hello, world!'; if (false !== strpos($str, 'world') ) { echo 'Yes, string contains "world"'; } else { echo 'No, string not contains "world"'; }
Или её регистронезависимым вариантом stripos
$str = 'Hello, WORLD!'; if (false !== stripos($str, 'world') ) { echo 'Yes, string contains "world"'; } else { echo 'No, string not contains "world"'; }
Для кириллицы и юникода нужно использовать mb_strpos
$str = 'Привет, мир!'; if (false !== mb_strpos($str, 'мир') ) { echo 'Да, строка содержит "мир"'; } else { echo 'Нет, строка не содержит "мир"'; }
И mb_stripos:
$str = 'Привет, МИР!'; if (false !== mb_stripos($str, 'мир') ) { echo 'Да, строка содержит "мир"'; } else { echo 'Нет, строка не содержит "мир"'; }
Крайне важно использовать
!==
, а не!=
, потому чтоstrpos
вернёт 0 — нулевую позицию, если найдёт совпадение сразу же. Соответственно, 0 приведётся к false, если сравнивать нестрого.
Ошибка Uncaught Error: Call to undefined function mb_stripos
Решается установкой php7.0-mbstring
:
apt install php7.0-mbstring
Свежие комментарии