mb_strstr

mb_strstr($haystack, $needle, $before_needle, $encoding)

Trouve la première occurrence d’un texte et renvoie le reste de la chaîne à partir d’elle, ou avec le troisième paramètre la partie qui la précède. Si le texte n’est pas trouvé, elle renvoie false.

Paramètres

  • $haystack – le texte dans lequel chercher.
  • $needle – le texte cherché.
  • $before_needle – facultatif, true = renvoyer la partie avant le texte trouvé. Par défaut false.
  • $encoding – facultatif, l’encodage des caractères. Par défaut mb_internal_encoding().

Exemples

echo mb_strstr("nom@café.exemple", "@"); // @café.exemple
// la partie avant le texte trouvé
echo mb_strstr("nom@café.exemple", "@", true); // nom
var_dump(mb_strstr("abc", "x")); // bool(false)

Points d’attention

  • Avec un texte UTF-8, elle donne le même résultat que strstr(). UTF-8 est conçu pour qu’une recherche par octets ne trouve jamais un caractère ailleurs qu’à son début. Elle a surtout un sens avec d’autres encodages, que vous passez en quatrième paramètre.
  • Elle est sensible à la casse. mb_stristr() cherche sans tenir compte de la casse.
  • Un texte cherché vide : PHP 7.4 affiche un avertissement et renvoie false, PHP 8 renvoie le texte entier.
  • Testez le résultat avec !== false.

Fonctions associées :
strstr()
mb_stristr()
mb_strrchr()
mb_strpos()