Funkcija preg_replace_callback_array
Funkcija preg_replace_callback_array omogoča izvajanje večkratnih zamenjav v nizu z uporabo različnih callback funkcij za vsak regularni izraz. Prvi parameter funkcije je asociativni array, kjer so ključi regularni izrazi, vrednosti pa callback funkcije. Kot drugi parameter se posreduje niz za obdelavo.
Sintaksa
preg_replace_callback_array(array $patterns_and_callbacks, string $subject): string
Primer
Zamenjajmo številke z njihovimi kvadrati, črke pa z velikimi črkami:
<?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;
?>
Rezultat izvajanja kode:
'A1B4C9'
Primer
Pretvorimo datume iz enega formata v drugega in označimo številke krepko:
<?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;
?>
Rezultat izvajanja kode:
'Date: <b>15</b>.<b>05</b>.<b>2023</b>'
Glejte tudi
-
funkcijo
preg_replace_callback,
ki izvaja zamenjavo z eno callback funkcijo -
funkcijo
preg_replace,
ki izvaja zamenjavo po regularnem izrazu