admin 发表于 2019-6-10 16:05:46

preg_replace_callback 函数

preg_replace_callback 函数执行一个正则表达式搜索并且使用一个回调进行替换。

语法mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

这个函数的行为除了可以指定一个 callback 替代 replacement 进行替换字符串的计算,其他方面等同于 preg_replace()。

参数说明:


[*]$pattern: 要搜索的模式,可以使字符串或一个字符串数组。
[*]$callback: 一个回调函数,在每次需要替换时调用,调用时函数得到的参数是从subject 中匹配到的结果。
[*]$subject: 要搜索替换的目标字符串或字符串数组。
[*]$limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。
[*]$count: 可选,为替换执行的次数。


DEMO<?php
// 将文本中的年份增加一年.
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// 回调函数
function next_year($matches)
{
// 通常: $matches是完成的匹配
// $matches是第一个捕获子组的匹配
// 以此类推
return $matches.($matches+1);
}
echo preg_replace_callback(
            "|(\d{2}/\d{2}/)(\d{4})|",
            "next_year",
            $text);

?>
页: [1]
查看完整版本: preg_replace_callback 函数