$haystack
, string $needle
, bool $before_needle
= false
): string|false
Retourne une sous-chaîne de haystack
,
allant de la première occurrence de needle
(incluse) jusqu'à la fin de la chaîne.
haystack
La chaîne dans laquelle on doit chercher.
needle
Antérieur à PHP 8.0.0, si needle
n'est pas une chaîne de caractères,
elle est convertie en un entier et appliqué en tant que valeur ordinal d'un caractère.
Ce comportement est obsolète à partir de PHP 7.3.0, et se fier à celui-ci
est fortement déconseillé. En fonction du comportement attendu,
needle
doit être transtypé explicitement en une chaîne de caractère,
ou un appel explicite à chr() doit être exécuté.
before_needle
Si vaut true
, stristr()
retourne la partie de haystack
avant la première
occurrence de needle
(needle
exclus).
needle
et haystack
sont traitées sans tenir compte de la casse.
Retourne la partie de la chaîne correspondante. Si
needle
n'est pas trouvé, la fonction
retourne false
.
Version | Description |
---|---|
8.2.0 | Le case folding ne dépend désormais plus de la locale définit avec setlocale(). Uniquement du case folding ASCII sera effectué. Les octets non-ASCII seront comparés par leur valeur d'octet. |
8.0.0 |
Passing an entier as needle is no longer supported.
|
7.3.0 |
Passer un entier comme before_needle a été
rendu obsolète.
|
Exemple #1 Exemple avec stristr()
<?php
$email = 'USER@EXAMPLE.com';
echo stristr($email, 'e'); // Affiche ER@EXAMPLE.com
echo stristr($email, 'e', true); // Affiche US
?>
Exemple #2 Teste si une chaîne de caractères est trouvée ou pas
<?php
$string = 'Hello World!';
if(stristr($string, 'terre') === FALSE) {
echo '"terre" non trouvé dans la chaîne de caractères';
}
// affiche : "terre" non trouvé dans la chaîne de caractères
?>
Exemple #3 Utilisation d'une "chaîne de caractères" en chiffre
<?php
$string = 'POMME';
echo stristr($string, 112); // 112 = p minuscule
// Affiche : POMME
?>
Note: Cette fonction gère les chaînes binaires.