PHP preg_replace_callback_array() 函数
PHP preg_replace_callback_array() 函数执行一个正则表达式搜索并且使用一个回调进行替换
( PHP >= 7 )
函数原型
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 将会无变化返回
范例
<?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);
运行以上 PHP 范例,输出结果如下
6 matches for "a" found 3 matches for "b" found