PHP preg_replace_callback_array() 函數
preg_replace_callback_array 函數執行一個正則運算式搜索並且使用一個回調進行替換。
該函數在 PHP7+ 版本支持。
語法
mixed preg_replace_callback_array ( array $patterns_and_callbacks , mixed $subject [, int $limit = -1 [, int &$count ]] )
函數類似於 preg_replace_callback(), 但它是基於每個模式匹配來回調函數進行替換。
參數說明:
$patterns_and_callbacks: 關聯數組,key(模式) => value(回調函數)
$subject: 要查找的和替換的字串或數組。
$limit: 可選,每個模式最大的替換次數,默認為 -1(無限制,全部匹配完)。
$count: 可選,指定替換的次數。
返回值
如果 subject 是一個數組返回數組,否則返回字串。發生錯誤則返回 NULL。
如果查找到了匹配,返回替換後的目標字串(或字串數組), 其他情況 subject 將會無變化返回。
實例
實例 1
$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