Funzione preg_replace_callback
La funzione preg_replace_callback esegue la ricerca tramite espressione regolare e la sostituzione utilizzando una funzione di callback. Il primo parametro accetta l'espressione regolare, il secondo - la funzione di callback, e il terzo - la stringa da elaborare. La funzione di callback riceve un array delle corrispondenze e deve restituire la stringa di sostituzione.
Sintassi
preg_replace_callback(pattern, callback, subject, [limit], [count]);
Esempio
Sostituiamo tutti i numeri nella stringa con i loro quadrati:
<?php
$str = 'Numbers: 2, 4, 6';
$res = preg_replace_callback('/\d+/', function($matches) {
return $matches[0] * $matches[0];
}, $str);
echo $res;
?>
Risultato dell'esecuzione del codice:
'Numbers: 4, 16, 36'
Esempio
Convertiamo tutte le parole in maiuscolo:
<?php
$str = 'hello world';
$res = preg_replace_callback('/\b\w+\b/', function($matches) {
return strtoupper($matches[0]);
}, $str);
echo $res;
?>
Risultato dell'esecuzione del codice:
'HELLO WORLD'
Esempio
Aggiungiamo parentesi attorno a ogni numero:
<?php
$str = '1 2 3 4 5';
$res = preg_replace_callback('/\d+/', function($matches) {
return '('.$matches[0].')';
}, $str);
echo $res;
?>
Risultato dell'esecuzione del codice:
'(1) (2) (3) (4) (5)'
Vedi anche
-
la funzione
preg_replace,
che esegue la sostituzione tramite espressione regolare -
la funzione
preg_match,
che esegue la ricerca tramite espressione regolare