Funcția preg_replace_callback_array
Funcția preg_replace_callback_array permite efectuarea de înlocuiri multiple într-un șir cu utilizarea unor funcții callback diferite pentru fiecare expresie regulată. Primul parametru funcția primește un tablou asociativ, unde cheile sunt expresii regulate, iar valorile sunt funcții callback. Al doilea parametru se transmite șirul pentru procesare.
Sintaxă
preg_replace_callback_array(array $patterns_and_callbacks, string $subject): string
Exemplu
Să înlocuim numerele cu pătratele lor, iar literele cu majuscule:
<?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;
?>
Rezultatul executării codului:
'A1B4C9'
Exemplu
Să transformăm datele dintr-un format în altul și să evidențiem numerele cu aldine:
<?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;
?>
Rezultatul executării codului:
'Date: <b>15</b>.<b>05</b>.<b>2023</b>'
Vedeți și
-
funcția
preg_replace_callback,
care execută înlocuirea cu o singură funcție callback -
funcția
preg_replace,
care execută înlocuirea prin expresie regulată