(PHP 7, PHP 8)
preg_replace_callback_array — Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова
$pattern,$subject,$limit = -1,&$count = null,$flags = 0Поведение этой функции похоже на 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"