(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_strpos — Repère la première occurrence d'un caractère dans une chaîne
$haystack,$needle,$offset = 0,$encoding = null
Repère la position de la première occurrence de needle dans
la chaîne haystack.
Effectue une recherche de type
strpos(), en tenant compte des caractères
multioctets. La position de needle est comptée
à partir du début de la chaîne haystack : les
positions commencent à 0.
haystack
La chaîne dans laquelle récupérer la position de la première occurrence
de needle
needle
La chaîne de caractères à trouver dans le paramètre
haystack. A contrario de la
fonction strpos(), les valeurs numériques
ne sont pas appliquées comme valeur ordinale d'un caractère.
offsetLa position de début de recherche en caractères. S'il est omis, zéro sera utilisé. Une position négative compte à partir de la fin de la chaîne de caractères.
encodingLe paramètre encoding
est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne
sera utilisé.
Retourne la position en caractères (non en octets) de la première occurrence
de needle dans la chaîne haystack,
en comptant à partir de 0.
Retourne false si needle est introuvable.
Si offset est supérieur à la longueur de
haystack, une
ValueError sera levée.
| Version | Description |
|---|---|
| 8.0.0 |
needle accepte désormais une chaîne vide.
|
| 8.0.0 |
encoding est désormais nullable.
|
| 7.1.0 |
Support pour offsets négatifs a été ajouté.
|
Exemple #1 mb_strpos() retourne un décalage en caractères, pas en octets
<?php
// "🐘" fait 4 octets mais 1 caractère ; "é" fait 2 octets mais 1 caractère
$str = "🐘H🐘é";
var_dump(mb_strpos($str, "é")); // caractère 3, pas octet 9
var_dump(mb_strpos($str, "🐘", 1)); // caractère 2, en sautant le premier "🐘"
?>L'exemple ci-dessus va afficher :
int(3) int(2)