PHP preg_replace_callback() 函数

返回上一级

PHP 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(无限制)

返回值

如果 subject 是一个数组, preg_replace_callback() 返回一个数组,其他情况返回字符串

错误发生时返回 NULL

如果查找到了匹配,返回替换后的目标字符串(或字符串数组), 其它情况 subject 将会无变化返回

范例

<?php

// 将文本中的年份增加一年
$text  = "April fools day is 04/01/2002\n";
$text .= "Last christmas was 12/24/2001\n";

// 回调函数
function next_year($matches)
{
  // 通常: $matches[0]是完成的匹配
  // $matches[1]是第一个捕获子组的匹配
  // 以此类推
  return $matches[1].($matches[2]+1);
}

echo preg_replace_callback("|(\d{2}/\d{2}/)(\d{4})|","next_year",$text);

运行以上 PHP 范例,输出结果如下

April fools day is 04/01/2003
Last christmas was 12/24/2002

返回上一级

PHP 5 函数参考手册

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2018 简单教程 twle.cn All Rights Reserved.