АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
204 of 410 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

Функция 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,
    которая выполняет поиск по регулярному выражению
byenru