stripos
(PHP 5, PHP 7)
stripos — Возвращает позицию первого вхождения подстроки без учета регистра
Описание
$haystack
, string $needle
, int $offset
= 0
) : int|false
Ищет позицию первого вхождения подстроки
needle
в строке haystack
.
В отличие от strpos(), эта функция не учитывает регистр символов.
Список параметров
-
haystack
-
Строка, в которой производится поиск.
-
needle
-
Заметьте, что
needle
может содержать строку из одного или более символов.До PHP 8.0.0, если параметр
needle
не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметрneedle
должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr(). -
offset
-
Если этот параметр указан, то поиск будет начат с указанного количества символов с начала строки. Если задано отрицательное значение, отсчет позиции начала поиска будет произведен с конца строки.
Возвращаемые значения
Возвращает позицию, в которой находится искомая строка, относительно
начала строки haystack
(независимо от смещения (offset)).
Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.
Возвращает false
, если искомая строка не найдена.
Эта функция может возвращать как логическое значение false
, так и значение не типа boolean, которое приводится к false
. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.
Список изменений
Версия | Описание |
---|---|
8.0.0 |
Передача целого числа (int) в needle больше не поддерживается.
|
7.3.0 |
Передача целого числа (int) в needle объявлена устаревшей.
|
7.1.0 |
Добавлена поддержка отрицательных значений offset .
|
Примеры
Пример #1 Пример использования stripos()
<?php
$findme = 'a';
$mystring1 = 'xyz';
$mystring2 = 'ABC';
$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);
// Конечно, 'a' не входит в 'xyz'
if ($pos1 === false) {
echo "Строка '$findme' не найдена в строке '$mystring1'";
}
// Заметьте, что используется ===. Использование == не даст верного
// результата, так как 'a' в нулевой позиции.
if ($pos2 !== false) {
echo "Нашел '$findme' в '$mystring2' в позиции $pos2";
}
?>
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
- mb_stripos() - Регистронезависимый поиск позиции первого вхождения одной строки в другую
- str_contains() - Determine if a string contains a given substring
- str_ends_with() - Checks if a string ends with a given substring
- str_starts_with() - Checks if a string starts with a given substring
- strpos() - Возвращает позицию первого вхождения подстроки
- strrpos() - Возвращает позицию последнего вхождения подстроки в строке
- strripos() - Возвращает позицию последнего вхождения подстроки без учета регистра
- stristr() - Регистронезависимый вариант функции strstr
- substr() - Возвращает подстроку
- str_ireplace() - Регистронезависимый вариант функции str_replace