PHP – mb_ereg_replac_callback() 函数

phpserver side programmingprogramming更新于 2025/8/19 15:37:17

在 PHP 中,mb_ereg_replace_callback() 函数用于执行正则表达式搜索,并使用回调将其替换为多字节支持。它会扫描字符串并将其与模式匹配,然后将匹配的文本替换为回调函数的输出。此函数类似于 mb_ereg_replace() 函数。 PHP 5.4 或更高版本支持此功能。

语法

string mb_ereg_replace_callback(str $pattern, callback $callback, str $string, str $options)

参数

该函数接受以下四个参数 −

  • $pattern − 此参数用于正则表达式模式。模式中可以使用多字节字符。

  • $callback − 此参数将被调用并传递目标字符串中匹配元素的数组,并返回替换字符串。

  • $string −此参数用于检查字符串。

  • $options − 此参数用于检查搜索选项。

注意 − 回调函数通常只需要在一个地方声明 mb_ereg_replace_callback()。您也可以使用匿名函数在调用 mb_ereg_replace_callback() 时声明回调函数。这样,​​我们可以在一个地方获得调用的所有信息,并且不会因为回调函数的名称在其他任何地方都没有使用而弄乱函数命名空间。

返回值

mb_ereg_replace_callback() 如果结果字符串成功,则返回 False;如果错误,则返回 False。如果字符串对于当前编码无效,则返回 NULL。

示例 1

<?php
   $result = "April Fools day is 04/01/2019
"; $result.= "Next match is 12/24/2021
"; // callback function function next_year($matches) { return $matches[1].($matches[2]+1); } echo mb_ereg_replace_callback( "(\d{2}/\d{2}/)(\d{4})", "next_year", $result); ?>

输出

April Fools day is 04/01/2020
Next match is 12/24/2022

示例 2

使用匿名函数

<?php
   // 使用匿名函数
   $result = "April Fools day is 04/01/2019
";    $result.= "Next match is 12/24/2021
";    echo mb_ereg_replace_callback(       "(\d{2}/\d{2}/)(\d{4})",       function ($matches) {          return $matches[1].($matches[2]+1); }, $result); ?>

输出

April fools day is 04/01/2020
Next match is 12/24/2022

注意 − 在示例 2 中,使用了匿名函数并删除了回调函数,但输出仍然保持不变。


相关文章