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() 从 HTML 字符串中提取所有图像
使用 preg_replace_callback 查找并替换具有可变数量参数的函数签名
将preg_replace()改写为preg_replace_callback()