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: 可选,为替换执行的次数。
返回值如果subject是一个数组, preg_replace_callback()返回一个数组,其他情况返回字符串。 错误发生时返回 NULL。 如果查找到了匹配,返回替换后的目标字符串(或字符串数组), 其他情况subject 将会无变化返回。 实例实例 1<?php$text = "April fools day is 04/01/2002/n";$text.= "Last christmas was 12/24/2001/n";function next_year($matches){ return $matches[1].($matches[2]+1);}echo preg_replace_callback( "|(/d{2}//d{2}/)(/d{4})|", "next_year", $text); ?> 执行结果如下所示: April fools day is 04/01/2003Last christmas was 12/24/2002 下载地址: PHP preg_replace_callback_array() 函数 PHP preg_replace() 函数 |