PHPIN.NET

 找回密码
 立即注册
查看: 45|回复: 0

[基础知识] preg_replace_callback 函数

[复制链接]

454

主题

479

帖子

4221

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4221
发表于 2019-6-10 16:05:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

语法
  1. 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
  1. <?php
  2. // 将文本中的年份增加一年.
  3. $text = "April fools day is 04/01/2002\n";
  4. $text.= "Last christmas was 12/24/2001\n";
  5. // 回调函数
  6. function next_year($matches)
  7. {
  8.   // 通常: $matches[0]是完成的匹配
  9.   // $matches[1]是第一个捕获子组的匹配
  10.   // 以此类推
  11.   return $matches[1].($matches[2]+1);
  12. }
  13. echo preg_replace_callback(
  14.             "|(\d{2}/\d{2}/)(\d{4})|",
  15.             "next_year",
  16.             $text);

  17. ?>
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|PHPIN.NET ( 冀ICP备00000001号 )|网站地图

GMT+8, 2019-6-27 18:06

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表