preg_replace_callback_array

(PHP 7)

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.

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

Версия Описание
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"

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