Функция preg_replace_callback
Функцията preg_replace_callback извършва търсене по регулярен израз и замяна с използване на callback-функция. Първият параметър приема регулярен израз, вторият - callback-функция, а третият - низ за обработка. Callback-функцията получава масив от съвпадения и трябва да връща низ за замяна.
Синтаксис
preg_replace_callback(pattern, callback, subject, [limit], [count]);
Пример
Заменяме всички числа в низа с техните квадрати:
<?php
$str = 'Numbers: 2, 4, 6';
$res = preg_replace_callback('/\d+/', function($matches) {
return $matches[0] * $matches[0];
}, $str);
echo $res;
?>
Резултат от изпълнението на кода:
'Numbers: 4, 16, 36'
Пример
Преобразуваме всички думи в главни букви:
<?php
$str = 'hello world';
$res = preg_replace_callback('/\b\w+\b/', function($matches) {
return strtoupper($matches[0]);
}, $str);
echo $res;
?>
Резултат от изпълнението на кода:
'HELLO WORLD'
Пример
Добавяме скоби около всяко число:
<?php
$str = '1 2 3 4 5';
$res = preg_replace_callback('/\d+/', function($matches) {
return '('.$matches[0].')';
}, $str);
echo $res;
?>
Резултат от изпълнението на кода:
'(1) (2) (3) (4) (5)'
Вижте също
-
функцията
preg_replace,
която извършва замяна по регулярен израз -
функцията
preg_match,
която извършва търсене по регулярен израз