Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник PHP

preg_replace_callback

Заменяет совпадения с шаблоном результатом функции.

Синтаксис

preg_replace_callback(string|array $pattern, callable $callback, string|array $subject, int $limit = -1): string|array|null

Параметры

ПараметрТипОписание
$patternstring|arrayРегулярное выражение.
$callbackcallableФункция: получает массив совпадения, возвращает замену.
$subjectstring|arrayИсходная строка.
$limitintНеобязательный. Наибольшее число замен.

Возвращаемое значение

string|array|nullСтрока после замен.

Примеры

Удвоить каждое число в тексте:

<?php
 
echo preg_replace_callback('/\d+/', fn ($match) => $match[0] * 2, '3 apples and 12 pears');

Результат:

6 apples and 24 pears

Из snake_case в camelCase:

<?php
 
echo preg_replace_callback('/_([a-z])/', fn ($m) => strtoupper($m[1]), 'user_first_name');

Результат:

userFirstName

Примечания

Функция нужна, когда замена зависит от найденного текста. Для простой подстановки хватит preg_replace().

См. также

  • preg_replace — Заменяет всё, что подошло под регулярное выражение.
  • preg_match_all — Находит все совпадения с регулярным выражением.
  • array_map — Применяет функцию к каждому элементу массива.

Вопросы и ответы по теме

В учебнике

  • Регулярные выражения — Регулярные выражения в PHP — preg_match, preg_replace, preg_split, группы и основные обозначения шаблонов.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.