Нужно делать поиск подстроки регистронезависимый. PHP: $findme = 'игр'; $mystring1 = 'Играем на улице'; $mystring2 = 'играем на улице'; $pos1 = stripos($mystring1, $findme); $pos2 = stripos($mystring2, $findme); if ($pos1 === false) { echo "Строка '$findme' не найдена в строке '$mystring1'"; } echo "<br>"; if ($pos2 !== false) { echo "Нашел '$findme' в '$mystring2' в позиции $pos2"; } Почему он не находит в слове "Играем" заданный "игр"?
https://php.ru/manual/function.mb-stripos.html mb_stripos (PHP 5 >= 5.2.0, PHP 7) Это работает включительно до 5.2.0? А если выше? К примеру PHP Version 5.4.31 --- Добавлено --- Кстате в латинице и мой первый вариант срабатывает. mb_stripos() так же не дает результата в кирилице.
Нашел решение. Пришлось перевести все в нижний регистр и искать. mb_strtolower($mystring1, 'UTF-8') - решает проблему
>= - больше или равно. Вам показали решение, только вы что-то не докрутили его: PHP: if(($pos = mb_stripos($mystring1, $findme, 0, 'utf-8')) !== false) { echo 'Вхождение найдено. Позиция ', $pos; } if(($pos = mb_stripos($mystring2, $findme, 0, 'utf-8')) !== false) { echo 'Вхождение найдено. Позиция ', $pos; }
Епс... я упустил третий параметр "0" Делал PHP: $pos=mb_stripos($mystring1,$findme,'utf-8') , и оно ругалось. Хоча и без должно работать.
Матом? И правильно делало. Потому, что вы документацию не внимательно читаете. Третий параметр - offset: --- Добавлено --- Не должно и не будет