Perform a regular expression search and replace using callbacks

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

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *