preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_arrayÉffectue une recherche de correspondance avec une expression régulière et remplace grâce à une fonction de rappel

Description

preg_replace_callback_array(
    array$pattern,
    string|array$subject,
    int$limit = -1,
    int&$count = null,
    int$flags = 0
): string|array|null

Le comportement de cette fonction est similaire à preg_replace_callback(), à l'exception que les fonctions de rappel sont exécutéees à chaque masque.

Liste de paramètres

pattern

Un tableau associatif qui établie une relation entre les masques (clés) et les fonctions de rappels callable (valeurs).

subject

La chaîne de caractères ou tableau qui contient les chaîne de caractères à chercher et remplacer.

limit

Le nombre maximum de remplacement pour chaque masque dans chaque chaîne de caractèressubject. Par défaut -1 (aucune limite).

count

Si fournit, cette variable sera remplit avec le nombre de remplacement effectué.

flags

flags peut être une combinaison des drapeaux PREG_OFFSET_CAPTURE et PREG_UNMATCHED_AS_NULL, qui influence le format du tableau de correspondances. Voir la description de preg_match() pour plus de détail.

Valeurs de retour

preg_replace_callback_array() retourne un tableau si le paramètre subject est un tableau, ou sinon une chaîne de caractères. Lors d'une erreur la valeur de retour est null.

Si des correspondances sont trouvées, le nouveau sujet sera retourné, sinon subject sera retourné inchangé.

Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.

Historique

VersionDescription
7.4.0 Le paramètre flags a été ajouté.

Exemples

Exemple #1 Exemple de preg_replace_callback_array()

<?php
$subject
= 'Aaaaaa Bbb';

preg_replace_callback_array(
[
'~[a]+~i' => function ($match) {
echo
strlen($match[0]), ' correspondances de "a" trouvées', PHP_EOL;
},
'~[b]+~i' => function ($match) {
echo
strlen($match[0]), ' correspondances de "b" trouvées', PHP_EOL;
}
],
$subject
);
?>

L'exemple ci-dessus va afficher :

6 correspondances de "a" trouvées 3 correspondances de "b" trouvées

Voir aussi

To Top