Предположим, что нам нужно найти подстроку в строке при помощи php.
Для решения этой задачи подходят разные инструменты.
Поиск подстроки с использованием функции strpos
Функция strpos возвращает позицию первого вхождения подстроки.
Пример:
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// Заметьте, что используется ===. Использование == не даст верного
// результата, так как 'a' находится в нулевой позиции.
if ($pos === false) {
echo "Строка '$findme' не найдена в строке '$mystring'";
} else {
echo "Строка '$findme' найдена в строке '$mystring'";
echo " в позиции $pos";
}
Источник: Документация по strpos
Функция возвращает либо порядковый номер первого символа подстроки в исходной строке, либо false, в случае если ничего не найдено.
При использовании этой функции, следует уделить особое внимание тому, что она может вернуть 0, в качестве результата, что говорит о нахождении подстроки в самом начале исходной строки. Поэтому нужно использовать троекратный знак равно $pos === false, для проверки успешности поиска.
Остальные "фишки" операторов сравнения описаны здесь: операторы сравнения.
Для этой функции существует регистронезависимый аналог: stripos
Еще одна функция для этой задачи: strrpos. Она находит последнее вхождение подстроки.
У нее, разумеется, тоже имеется регистронезависимый вариант: strripos
Если функция strpos не подходит для вашей цели, то найдите другой инструмент.
Для работы со строками существует также масса функций, о существовании которых необходимо знать: функции для работы со строками.
Поиск подстроки при помощи функции preg_match
Эта функция производит поиск подстроки при помощи регулярного выражения.
Регулярное выражение - это шаблон, который сравнивается со строкой. Под один шаблон может подходить сразу множество разных строк.
Они пригодятся если вам нужно производить поиск не по конкретной подстроке, а найти все строки, обладающие свойствами, описанными при помощи регулярного выражения. Знание этой темы сильно расширяет ваши возможности в работе со строками.
Пример:
$html = 'content <title>hello php!</title> content';
if (preg_match("!<title>(.*?)</title>!si", $html, $matches)){
echo $matches[1];
} else {
echo "Тег не найден";
}
Начать рекомендую с этой статьи: регулярные выражения.
PHP располагает широким выбором функций по работе с регулярными выражениями.