# stristr

(PHP 4, PHP 5, PHP 7, PHP 8)

stristr — Version insensible à la casse de strstr()

### Description

stristr(string `$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.

### Liste de paramètres

`haystack`

  La chaîne dans laquelle on doit chercher.

`needle`

  La chaîne à rechercher.

  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.

### Valeurs de retour

Retourne la partie de la chaîne correspondante. Si `needle` n'est pas trouvé, la fonction retourne `false`.

### Historique

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 | `needle` accepte désormais une chaîne vide.
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.

### Exemples

Exemple #1 Exemple avec stristr()

`<?php
$email = 'USER@EXAMPLE.com';
echo stristr($email, 'e'), PHP_EOL; // affiche ER@EXAMPLE.com
echo stristr($email, 'e', true), PHP_EOL; // affiche US
?>`

Exemple #2 Teste si une chaîne de caractères est trouvée ou pas

`<?php
$string = 'Hello World!';
if (stristr($string, 'earth') === FALSE) {
echo '"terre" non trouvé dans la chaîne de caractères';
}
// affiche : "terre" non trouvé dans la chaîne de caractères
?>`

### Notes

> Note: Cette fonction gère les chaînes binaires.

### Voir aussi

- strstr() - Trouve la première occurrence dans une chaîne
- strrchr() - Trouve la dernière occurrence d'un caractère dans une chaîne
- stripos() - Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse
- strpbrk() - Recherche un ensemble de caractères dans une chaîne de caractères
- preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard