PHP – mb_ereg_replac_callback() 函数
在PHP中,mb_ereg_replace_callback()函数用于执行正则表达式搜索,并使用回调将其替换为多字节支持。它将扫描字符串并将它们与模式匹配,然后将匹配的文本替换为回调函数的输出。这个函数就像mb_ereg_replace()函数。PHP5.4或更高版本支持。
语法
string mb_ereg_replace_callback(str $pattern, callback $callback, str $string, str $options)
参数
该函数接受以下四个参数-
$pattern-此参数用于正则表达式模式。它可以在模式中使用多字节字符。
$callback-此参数将被调用并传递主题字符串中匹配元素的数组,它应该返回替换字符串。
$string-此参数用于检查字符串。
$options-此参数用于检查搜索选项。
注意-回调函数通常只需要mb_ereg_replace_callback()一个地方。您还可以使用匿名函数在call中声明回调mb_ereg_replace_callback()。通过使用它,我们可以在一个地方拥有调用的所有信息,并且不会将函数命名空间与其他任何地方都没有使用的回调函数的名称混淆。
返回值
mb_ereg_replace_callback()为结果字符串返回成功,或者在出错时返回False。如果字符串对当前编码无效,则返回NULL。
示例1
<?php $result = "April Fools day is 04/01/2019\n"; $result.= "Next match is 12/24/2021\n"; //回调函数 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\n"; $result.= "Next match is 12/24/2021\n"; 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中,使用匿名函数并删除回调函数,但输出仍然保持不变。