Fonction preg_replace_callback
La fonction preg_replace_callback effectue une recherche par expression régulière et un remplacement en utilisant une fonction de callback. Elle accepte comme premier paramètre une expression régulière, comme deuxième - une fonction de callback, et comme troisième - une chaîne à traiter. La fonction de callback reçoit un tableau des correspondances et doit retourner une chaîne de remplacement.
Syntaxe
preg_replace_callback(pattern, callback, subject, [limit], [count]);
Exemple
Remplaçons tous les nombres dans la chaîne par leurs carrés :
<?php
$str = 'Numbers: 2, 4, 6';
$res = preg_replace_callback('/\d+/', function($matches) {
return $matches[0] * $matches[0];
}, $str);
echo $res;
?>
Résultat de l'exécution du code :
'Numbers: 4, 16, 36'
Exemple
Convertissons tous les mots en majuscules :
<?php
$str = 'hello world';
$res = preg_replace_callback('/\b\w+\b/', function($matches) {
return strtoupper($matches[0]);
}, $str);
echo $res;
?>
Résultat de l'exécution du code :
'HELLO WORLD'
Exemple
Ajoutons des parenthèses autour de chaque nombre :
<?php
$str = '1 2 3 4 5';
$res = preg_replace_callback('/\d+/', function($matches) {
return '('.$matches[0].')';
}, $str);
echo $res;
?>
Résultat de l'exécution du code :
'(1) (2) (3) (4) (5)'
Voir aussi
-
la fonction
preg_replace,
qui effectue un remplacement par expression régulière -
la fonction
preg_match,
qui effectue une recherche par expression régulière