PHP 8.4.1 Released!

mb_stristr

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

mb_stristrTrouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

Description

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

mb_stristr() trouve la première occurrence de needle dans haystack et retourne la portion de haystack. Contrairement à mb_strstr(), mb_stristr() est insensible à la casse. Si needle n'est pas trouvé, la fonction retournera false.

Liste de paramètres

haystack

La chaîne depuis laquelle on récupère la première occurrence de needle

needle

La chaîne à chercher dans haystack

before_needle

Détermine quelle portion de haystack cette fonction retourne. Si défini à true, la fonction retournera toute la chaîne haystack depuis le début jusqu'à la première occurrence de needle (needle exclus). Si défini à false, la fonction retournera toute la chaîne haystack depuis la première occurrence de needle jusqu'à la fin (needle inclus).

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la portion de haystack, ou false si needle n'est pas trouvé.

Historique

Version Description
8.0.0 needle accepte désormais une chaîne vide.
8.0.0 encoding est désormais nullable.

Voir aussi

  • stristr() - Version insensible à la casse de strstr
  • strstr() - Trouve la première occurrence dans une chaîne
  • mb_strstr() - Trouve la première occurrence d'une chaîne dans une autre

add a note

User Contributed Notes 1 note

up
0
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:

<?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