preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_arrayPerform a regular expression search and replace using callbacks

Опис

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

The behavior of this function is similar to preg_replace_callback(), except that callbacks are executed on a per-pattern basis.

Параметри

pattern

An associative array mapping patterns (keys) to callables (values).

subject

The string or an array with strings to search and replace.

limit

The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit).

count

If specified, this variable will be filled with the number of replacements done.

flags

flags can be a combination of the PREG_OFFSET_CAPTURE and PREG_UNMATCHED_AS_NULL flags, which influence the format of the matches array. See the description in preg_match() for more details.

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

preg_replace_callback_array() returns an array if the subject parameter is an array, or a string otherwise. On errors the return value is null

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.

Помилки/виключення

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

Журнал змін

Версія Опис
7.4.0 The flags parameter was added.

Приклади

Приклад #1 preg_replace_callback_array() example

<?php
$subject
= 'Aaaaaa Bbb';

preg_replace_callback_array(
[
'~[a]+~i' => function ($match) {
echo
strlen($match[0]), ' matches for "a" found', PHP_EOL;
},
'~[b]+~i' => function ($match) {
echo
strlen($match[0]), ' matches for "b" found', PHP_EOL;
}
],
$subject
);
?>

Поданий вище приклад виведе:

6 matches for "a" found
3 matches for "b" found

Прогляньте також