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() находит первое вхождение подстроки needle в haystack и возвращает часть haystack. В отличие от mb_strstr(), mb_stristr() не учитывает регистр. Если needle не найдена, возвращается false.

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

haystack

Строка, в которой ищется первое вхождение строки needle

needle

Строка для поиска в haystack

before_needle

Определяет, какую часть строки haystack вернёт эта функция. Если установлено true, возвращается часть haystack от начала до первого вхождения needle (исключая needle). Если установлено false, возвращается часть haystack от первого вхождения needle до конца (включая needle).

encoding

Название используемой кодировки символов. Если этот параметр опущен, используется внутренняя кодировка.

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

Возвращает часть строки haystack, или false, если needle не найдена.

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

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

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

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

add a note

User Contributed Notes 1 note

up
0
nowfel dot terki at mailfence dot com
1 year 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