preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

preg_replace_callback — Виконує пошук за регулярним виразом та заміною з використанням callback-функції

Опис

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

Поведінка цієї функції багато в чому нагадує preg_replace(), за винятком того, що замість параметра replacement необхідно вказувати callback-функцію.

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

pattern

Шуканий шаблон. Можливо як рядком, і масивом рядків.

callback

Callback-функція, що викликається, якій буде переданий масив збіглих елементів з рядка subject. Callback-функція повинна повернути рядок із заміною. Callback-функція має бути описана так:

handler(array $matches): string

Достаточно частоcallback функція, окрім як у виклику **preg_replace_callback()**ні в чому більше не бере участі. Виходячи з цих міркувань, можна використовувати анонімні функції для створення callback-функції безпосередньо у виклику preg_replace_callback(). Якщо ви використовуєте такий підхід, вся інформація, пов'язана із заміною за регулярним виразом, буде зібрана в одному місці, і простір імен функцій не буде захаращуватися записами, що не використовуються.

Приклад #1preg_replace_callback()** та анонімна функція**

Loading...

subject

Рядок або масив рядків для пошуку та заміни.

limit

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

count

Якщо зазначено, то ця змінна буде заповнена кількістю зроблених замін.

flags

flags може бути комбінацією прапорів **PREG_OFFSET_CAPTURE** і **PREG_UNMATCHED_AS_NULL**які впливають на формат масиву збігів. Дивіться опис у preg_match() для більш детальної інформації.

Значення, що повертаються

preg_replace_callback() повертає масив, якщо параметр subject є масивом, інакше повертається рядок. У разі помилок повертається null

Якщо знайдено збіги, буде повернуто результуючий рядок, інакше subject повернеться незміненим.

Помилки

Якщо переданий шаблон регулярного виразу не компілюється в допустимий регулярний вираз, видається помилка рівня E_WARNING

список змін

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

Приклади

Приклад #2 Приклад використання preg_replace_callback()****

Loading...

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

День смеха был 01/04/2003
Последнее Рождество было 24/12/2002

Приклад #3 Рекурсивна обробка BB-кодів за допомогою preg_replace_callback()

Loading...

Дивіться також