(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
$pattern
,$subject
,$limit
= -1,&$count
= null
,$flags
= 0Le comportement de cette fonction est similaire à preg_replace_callback(), à l'exception que les fonctions de rappel sont exécutéees à chaque masque.
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ères subject
. 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.
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é.
Si le masque regex passé ne compile pas à une regex valide, une E_WARNING
est émise.
Version | Description |
---|---|
7.4.0 |
Le paramètre flags a été ajouté.
|
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