(PHP 5, PHP 7, PHP 8)
stripos — Возвращает позицию первого вхождения подстроки без учёта регистра
Ищет позицию первого вхождения подстроки needle
в строке haystack
.
В отличие от strpos(), эта функция не учитывает регистр символов.
haystack
Строка, в которой производится поиск.
needle
Строка для поиска.
До PHP 8.0.0, если параметр needle
— не строка, он преобразовывается в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0 и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle
должен быть либо явно приведён к строке, либо должен быть выполнен явный вызов функции chr().
offset
Если этот параметр указан, то поиск будет начат с указанного количества символов с начала строки. Если задано отрицательное значение, отсчёт позиции начала поиска будет произведён с конца строки.
Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack
(независимо от смещения (offset)). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.
Возвращает false
, если искомая строка не найдена.
Функция возвращает как логическое значение false
, так и нелогическое значение, которое приводится к false
. Прочитайте раздел «Логический тип», чтобы получить дополнительную информацию. Используйте оператор === для проверки значения, которое возвращает функция.
Версия | Описание |
---|---|
8.2.0 | Приведение к единому регистру больше не зависит от настроек региональных установок, которые установили функцией setlocale(). Преобразовываются только символы кодировки ASCII. Байты, которые не относятся к кодировке ASCII, будут сравниваться по значению байта. |
8.0.0 | Параметр needle теперь разрешает пустую строку. |
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";
}
?>
Замечание: Эта функция безопасна для обработки данных в двоичной форме.