preg_replace_callback_array
(PHP 7, PHP 8)
preg_replace_callback_array — Perform a regular expression search and replace using callbacks
說明
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 subjectstring. Defaults to-1(no limit).
- 
count
- 
      If specified, this variable will be filled with the number of replacements done. 
- 
flags
- 
      flagscan be a combination of thePREG_OFFSET_CAPTUREandPREG_UNMATCHED_AS_NULLflags, 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 flagsparameter 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
參見
- PCRE Patterns
- preg_replace_callback() - 執行一個正規表示式搜索並且使用一個回撥進行替換
- preg_quote() - 轉義正規表示式字元
- preg_replace() - 執行一個正規表示式的搜索和替換
- preg_last_error() - 返回最後一個PCRE正則執行產生的錯誤程式碼
- Anonymous functions