Функција preg_replace_callback_array
Функцијата preg_replace_callback_array овозможува извршување на множествени замени во низа со користење на различни callback-функции за секој регуларен израз. Како прв параметар функцијата прима асоцијативна низа, каде што клучеви се регуларните изрази, а вредностите се callback-функции. Како втор параметар се пренесува низа за обработка.
Синтакса
preg_replace_callback_array(array $patterns_and_callbacks, string $subject): string
Пример
Да ги замениме броевите со нивните квадрати, а буквите со големи:
<?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;
?>
Резултат од извршување на кодот:
'A1B4C9'
Пример
Да ги трансформираме датумите од еден формат во друг и да ги истакнеме броевите со задебелени букви:
<?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;
?>
Резултат од извршување на кодот:
'Date: <b>15</b>.<b>05</b>.<b>2023</b>'
Погледнете ги исто така
-
функцијата
preg_replace_callback,
која извршува замена со една callback-функција -
функцијата
preg_replace,
која извршува замена со регуларен израз