mb_strpos

(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

Description

function mb_strpos(
    string $haystack,
    string $needle,
    int $offset = 0,
    ?string $encoding = null
): int|false

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.

Liste de paramètres

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.

offset

La 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.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

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.

Erreurs / Exceptions

  • Si offset est supérieur à la longueur de haystack, une ValueError sera levée.

Historique

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é.

Exemples

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)

Voir aussi

  • mb_strrpos() - Repère la dernière occurrence d'un caractère dans une chaîne
  • mb_stripos() - Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse
  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • strpos() - Cherche la position de la première occurrence dans une chaîne
+add a note

User Contributed Notes

There are no user contributed notes for this page.