preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_arrayВыполняет поиск и замену по регулярному выражению с использованием функций обратного вызова

Описание

preg_replace_callback_array(
    array$pattern,
    string|array$subject,
    int$limit = -1,
    int&$count = null,
    int$flags = 0
): string|array|null

Поведение этой функции похоже на preg_replace_callback(), за исключением того, что для каждого шаблона используется своя функция обратного вызова.

Список параметров

pattern

Ассоциативный массив, связывающий шаблоны регулярного выражения (ключи) и callable (значения).

subject

Строка, в которой будет производиться поиск и замена.

limit

Максимальное количество замен для каждого шаблона в строке subject. По умолчанию -1 (без ограничений).

count

Если задан, то в указанную переменную будет записано количество произведённых замен.

flags

flags может быть комбинацией флагов PREG_OFFSET_CAPTURE и PREG_UNMATCHED_AS_NULL, которые влияют на формат массива совпадений. Смотрите описание в preg_match() для более подробной информации.

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

preg_replace_callback_array() возвращает массив, если параметр subject является массивом и строку, если строкой. В случае возникновения ошибки возвращается null

Если совпадения найдены, будет возвращена новая строка, а если нет, то исходная subject.

Ошибки

Если передали шаблон регулярного выражения, который не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня E_WARNING.

Список изменений

ВерсияОписание
7.4.0 Добавлен параметр flags.

Примеры

Пример #1 Пример использования preg_replace_callback_array()

<?php
$subject
= 'Aaaaaa Bbb';

preg_replace_callback_array(
[
'~[a]+~i' => function ($match) {
echo
'Найдено ', strlen($match[0]), ' совпадений "a"', PHP_EOL;
},
'~[b]+~i' => function ($match) {
echo
'Найдено ', strlen($match[0]), ' совпадений "b"', PHP_EOL;
}
],
$subject
);
?>

Результат выполнения приведённого примера:

Найдено 6 совпадений "a" Найдено 3 совпадений "b"

Смотрите также

To Top