Функция preg_replace_callback

Функцията preg_replace_callback извършва търсене по регулярен израз и замяна с използване на callback-функция. Първият параметър приема регулярен израз, вторият - callback-функция, а третият - низ за обработка. Callback-функцията получава масив от съвпадения и трябва да връща низ за замяна.

Синтаксис

phppreg_replace_callback(pattern, callback, subject, [limit], [count]);

Пример

Заменяме всички числа в низа с техните квадрати:

php<?php
  $str = 'Numbers: 2, 4, 6';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return $matches[0] * $matches[0];
  }, $str);
  echo $res;
?>

Резултат от изпълнението на кода:

php'Numbers: 4, 16, 36'

Пример

Преобразуваме всички думи в главни букви:

php<?php
  $str = 'hello world';
  $res = preg_replace_callback('/\b\w+\b/', function($matches) {
    return strtoupper($matches[0]);
  }, $str);
  echo $res;
?>

Резултат от изпълнението на кода:

php'HELLO WORLD'

Пример

Добавяме скоби около всяко число:

php<?php
  $str = '1 2 3 4 5';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return '('.$matches[0].')';
  }, $str);
  echo $res;
?>

Резултат от изпълнението на кода:

php'(1) (2) (3) (4) (5)'

Вижте също

  • функцията preg_replace,
    която извършва замяна по регулярен израз
  • функцията preg_match,
    която извършва търсене по регулярен израз