Для того, чтобы в 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

Свежие комментарии