betterCode() PHP 2025

mb_stristr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_stristrВозвращает часть строки до или после первого вхождения подстроки, без учёта регистра

Описание

mb_stristr(
    string $haystack,
    string $needle,
    bool $before_needle = false,
    ?string $encoding = null
): string|false

Функция mb_stristr() ищет в строке haystack первое вхождение подстроки needle и возвращает часть строки haystack. Функция mb_stristr(), в отличие от функции mb_strstr(), не учитывает регистр. Функция возвращает значение false, если строка не содержит подстроку needle.

Список параметров

haystack

Строка, часть которой требуется получить — до или после первого вхождения подстроки needle.

needle

Подстрока для поиска в строке haystack.

before_needle

Параметр определяет, какую часть строки haystack возвращает функция. При установке значения true функция возвращает часть строки haystack от начала до первого вхождения подстроки needle, за исключением искомой подстроки. При установке значения false возвращается часть строки haystack от первого вхождения подстроки needle до конца строки, включая искомую подстроку.

encoding

Параметр encoding указывает кодировку символов. При пропуске параметра или передаче значения null функция интерпретирует символы в предустановленной кодировке модуля.

Возвращаемые значения

Функция возвращает часть строки haystack или значение false, если строка не содержит подстроку needle.

Список изменений

Версия Описание
8.0.0 needle теперь принимает пустую строку.
8.0.0 Параметр encoding теперь принимает значение null.

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strstr() - Находит первое вхождение подстроки
  • mb_strstr() - Возвращает часть строки до или после первого вхождения подстроки

Добавить

Примечания пользователей 1 note

up
1
nowfel dot terki at mailfence dot com
3 years ago
Be aware that if needle is an empty string, mb_stristr return the haystack by default.

For exemple:

<?php
if (mb_stristr("foo", "")) {
echo
"We enter in condition";
}
?>

Because in the above exemple the return of mb_stristr is "foo".

So if we do not want this kind of behaviour, we must set the third argument, ($before_needle) to true.

<?php
if (mb_stristr("foo", "", true)) {
echo
"We do not enter in condition";
}
?>

It can be useful to know it, specially when needle is dynamic.
To Top