CascadiaPHP 2024


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

mb_stristrFinds first occurrence of a string within another, case insensitive


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

mb_stristr() finds the first occurrence of needle in haystack and returns the portion of haystack. Unlike mb_strstr(), mb_stristr() is case-insensitive. If needle is not found, it returns false.



The string from which to get the first occurrence of needle


The string to find in haystack


Determines which portion of haystack this function returns. If set to true, it returns all of haystack from the beginning to the first occurrence of needle (excluding needle). If set to false, it returns all of haystack from the first occurrence of needle to the end (including needle).


Character encoding name to use. If it is omitted, internal character encoding is used.


Returns the portion of haystack, or false if needle is not found.


Version Beschreibung
8.0.0 needle akzeptiert nun eine leere Zeichenkette.
8.0.0 encoding ist nun nullable (akzeptiert den null-Wert).

Siehe auch

  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strstr() - Findet das erste Vorkommen eines Strings
  • mb_strstr() - Finds first occurrence of a string within another

add a note

User Contributed Notes 1 note

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

For exemple:

if (mb_stristr("foo", "")) {
"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.

if (mb_stristr("foo", "", true)) {
"We do not enter in condition";

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