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...
Дивіться також
- Регулярні вирази PCRE
- preg_replace_callback_array() - Здійснює пошук та заміну за регулярним виразом з використанням функцій зворотного виклику
- preg_quote() - Екранує символи у регулярних виразах
- preg_replace() - Виконує пошук та заміну за регулярним виразом
- preg_last_error() - Повертає код помилки виконання останнього регулярного вираження PCRE
- Анонімні функції