Funzione preg_replace_callback_array
La funzione preg_replace_callback_array consente di eseguire sostituzioni multiple in una stringa utilizzando diverse funzioni callback per ogni espressione regolare. Il primo parametro della funzione accetta un array associativo, dove le chiavi sono le espressioni regolari e i valori sono le funzioni callback. Il secondo parametro è la stringa da elaborare.
Sintassi
preg_replace_callback_array(array $patterns_and_callbacks, string $subject): string
Esempio
Sostituiamo i numeri con i loro quadrati e le lettere con maiuscole:
<?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;
?>
Risultato dell'esecuzione del codice:
'A1B4C9'
Esempio
Convertiamo le date da un formato all'altro ed evidenziamo i numeri in grassetto:
<?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;
?>
Risultato dell'esecuzione del codice:
'Date: <b>15</b>.<b>05</b>.<b>2023</b>'
Vedi anche
-
la funzione
preg_replace_callback,
che esegue la sostituzione con una singola funzione callback -
la funzione
preg_replace,
che esegue la sostituzione con un'espressione regolare