(PHP 7)
preg_replace_callback_array — Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова
$patterns_and_callbacks
, mixed $subject
[, int $limit
= -1
[, int &$count
]] ) : mixedПоведение этой функции похоже на preg_replace_callback(), за исключением того, что для каждого шаблона используется своя функция обратного вызова.
patterns_and_callbacks
Ассоциативный массив, связывающий шаблоны регулярного выражения (ключи) и функции обратного вызова (значения).
subject
Строка, в которой будет производиться поиск и замена.
limit
Максимальное количество замен для каждого шаблона в строке
subject
. По умолчанию
-1 (без ограничений).
count
Если задан, то в указанную переменную будет записано количество произведенных замен.
preg_replace_callback_array() возвращает массив, если
параметр subject
является массивом и строку, если строкой.
В случае ошибки возвращается NULL
Если совпадения найдены, будет возвращена новая строка, а если нет, то исходная
subject
.
Пример #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"