php. Поиск в строке


Задача:
Требуется узнать, содержит ли строка заданное слово или другую строку.
Например:
У нас есть некий текст(В данном примере взят текст Lorem ipsum). И необходимо определить, содержит ли данный текст заданное слово(В примере осуществляется поиск слова 'esse').
Решение:

Для решения данной проблемы можно воспользоваться встроенной функцией mb_strpos().
$text = 'Классический текст Lorem Ipsum, используемый с XVI века
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. 
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."';

$find = 'esse';

if (($position = mb_strpos($text, $find, 0, 'UTF-8')) !== false) {
    echo 'Слово ' . $find . ' найдено в тексте в позиции ' . $position . '!';
} else {
    echo 'Слово ' . $find . ' не найдено в тексте!';
}

В данном примере был взят текст Lorem ipsum и присвоен переменной $text.
После чего переменной $find присвоено значение в виде слова esse (Это слово, которое нам необходимо найти тексте).
Функция mb_strpos() осуществляет поиск позиции первого вхождения одной строки в другую.
Если слово было найдено, то mb_strpos() вернет позицию первого вхождения.
В случае если слово не удалось найти в тексте, mb_strpos() возвращает false.
Но если строка начинается со слова по которому осуществляется поиск, то mb_strpos() вернет значение 0.
По этому, чтобы отличить возвращаемое значение false и 0, необходимо использовать точную, тождественную проверку на равенство с учетом типа.
mb_strpos($text, $find, 0, 'UTF-8')) !== false

В функцию mb_strpos() первым параметром передаем текст, в котором будет осуществляться поиск.
Вторым параметром передается слово, которое необходимо найти.
Третий параметр указывает смещение начала поиска (Если он не задан, используется 0. Если значение отрицательно, отсчет идет с конца строки).
Четвертый параметр необходим для указания символьной кодировки (Если он не задан, то будет использовано значение внутренней кодировки).
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.