Обнаружение подстроки с помощью strpos() в PHP

PHP

В PHP представлена функция strpos(), использование которой позволяет получить позицию наиболее раннего вхождения в строке. Это позволяет организовывать проверку наличия содержимого где-либо на странице или в коде, а компоненты комбинацииif-elseif-elseделают реальным создание условий, завязанных на этом факторе.

Синтаксис

Запись производится в следующем формате:

<?
strpos ($haystack, $needle, $offset)
?>

Первые два параметра являются обязательными и могут быть представлены строками (исключение рассмотрено ниже), второй выступает в качестве опционального и составляет определённое число.
Можно использовать как и слова, заключённые в кавычки, так и переменные, регулярные выражения.

Поддерживаемые версии

Воспользоваться функцией можно начиная с четвёртого крупного обновления языка. Синтаксис сохранился, однако параметр $needle, следующий за $haystack и стоящий перед необязательного $offset, изменил своё поведение – если он не является строкой, то переводится в целое число и распознаётся в качестве HTML-мнемоники. Полагаться на эту особенность не рекомендуется начиная с версии 7.3, а в PHP 8 это вовсе стало невозможным.

Альтернативы strpos()

stripos()

Функция выполняет схожие действия. Её единственное отличие от главным образом рассматриваемой в материале выражается в осуществлении поиска вне зависимости от регистра.

strstr()

В отличие от strpos(), данная функция выводит на экран само вхождение подстроки, а не её положение.

Примеры использования

Простой поиск с переменными

<?
$base = «В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!»;
$request = «цитрус»;
$proccess = strpos($base, $request);
if($proccess !== false) {
echo»Найдено!»;
} else {
echo»Результаты не найдены!»;
}
?>

Обратите внимание, что в условии можно указывать !== или ===. Остальные операторы не приведут к правильному результату.

Поиск с переменными вне зависимости от регистра

<?
$base = «ABC»;
$request = «b»;
$proccess = stripos($base, $request);
if($proccess !== false) {
echo»Найдено!»;
} else {
echo»Результаты не найдены!»;
}
?>

stripos() не работает с кириллицей. Для этих задач нужно задействовать mb_stripos().

Оцените статью
Образовательный портал WELCOME4U.RU
Добавить комментарий

Adblock
detector