Fonction preg_replace_callback_array
La fonction preg_replace_callback_array permet d'effectuer de multiples remplacements dans une chaîne en utilisant différentes fonctions de rappel pour chaque expression régulière. Le premier paramètre de la fonction accepte un tableau associatif, où les clés sont les expressions régulières et les valeurs sont les fonctions de rappel. Le deuxième paramètre est la chaîne à traiter.
Syntaxe
preg_replace_callback_array(array $patterns_and_callbacks, string $subject): string
Exemple
Remplaçons les nombres par leurs carrés, et les lettres minuscules par des majuscules :
<?php
$str = 'a1b2c3';
$res = preg_replace_callback_array([
'/\d+/' => function($matches) {
return $matches[0] * $matches[0];
},
'/[a-z]/' => function($matches) {
return strtoupper($matches[0]);
}
], $str);
echo $res;
?>
Résultat de l'exécution du code :
'A1B4C9'
Exemple
Transformons les dates d'un format à un autre et mettons les nombres en gras :
<?php
$text = 'Date: 2023-05-15';
$res = preg_replace_callback_array([
'/(\d{4})-(\d{2})-(\d{2})/' => function($matches) {
return $matches[3].'.'.$matches[2].'.'.$matches[1];
},
'/\d+/' => function($matches) {
return '<b>'.$matches[0].'</b>';
}
], $text);
echo $res;
?>
Résultat de l'exécution du code :
'Date: <b>15</b>.<b>05</b>.<b>2023</b>'
Voir aussi
-
la fonction
preg_replace_callback,
qui effectue un remplacement avec une seule fonction de rappel -
la fonction
preg_replace,
qui effectue un remplacement par une expression régulière