preg_replace_callback使用方法

Posted CIBLE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了preg_replace_callback使用方法相关的知识,希望对你有一定的参考价值。

官网解释:

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

(php 4 >= 4.0.5, PHP 5)

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

作为程序,这个时候,亲测比看文字介绍要管用的多

实例:

<?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);

?>

具体应用:

class StringUtil {
    function replaceAll($sTemplate ) {
        $resp = preg_replace_callback(
            ‘/\{(.*?)}/‘
            ,function ($matches) {
                if (2 == count($matches)) {
                    return $this->$matches[1] ;
                } else {
                    return "" ;
                }
            }
            ,$sTemplate
        ) ;
        return $resp ;
    }
}

function _test() {
    $sql_t = "select t_id, ware_name from dyw_ware where t_id = {t_id} {orderby}" ;
    $obj = new StringUtil() ;
    $obj->t_id = 101 ;
    $obj->orderby = "order by t_id desc" ;
    $sql =  $obj->replaceAll($sql_t) ;
    echo "<br/>".$sql ;

}
_test() ;

 

以上是关于preg_replace_callback使用方法的主要内容,如果未能解决你的问题,请参考以下文章

preg_replace_callback函数

使用 preg_replace_callback() 从 HTML 字符串中提取所有图像

使用 preg_replace_callback 查找并替换具有可变数量参数的函数签名

将preg_replace()改写为preg_replace_callback()

从 preg_replace 到 preg_replace_callback

如何将 preg_replace e 转换为 preg_replace_callback?