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使用方法的更多相关文章
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- preg_replace_callback 正则替换回调方法用法,
Example #1 preg_replace_callback() 和 匿名函数 <?php /* 一个unix样式的命令行过滤器,用于将段落开始部分的大写字母转换为小写. */ $fp = ...
- php示例代码之类似于C#中的String.Format方法
php示例代码之类似于C#中的String.Format方法 原文来自于 http://stackoverflow.com/questions/1241177/c-string-format-equ ...
- preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
由于方法preg_replace()为PHP 5.5.x 中废弃的特性,官方建议需要在代码中将preg_replace()替换为函数preg_replace_callback,可以问题解决. 具体请见 ...
- 安装ECshop普遍问题的解决方法
安装ecshop经常会出现以下问题: 1.Strict Standards: Non-static method cls_image::gd_version() should not be calle ...
- 【六】PHP正则表达式方法
PHP中正则表达式的声明格式有两种方式,一种是POSIX老版模式,已经不常用.还有一种是其他语言中常见的PCRE方法. 1.正则表达式的匹配方法并返回匹配的项:array preg_grep(stri ...
- PHP开发丨3个简单的方法处理emoji表情
一般Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串.这是怎么回事呢?原来是因为Mysql的utf8字符集是3字节的,而emo ...
- 让wordpress标签云显示文章数的正确方法
先看一下效果 在百度经验找到一个教程,可惜,根据实践发现方法是错误的, 百度经验上的代码: 1 2 3 4 5 6 7 8 9 10 11 12 //标签tag所包含的文章数量 function Ta ...
- PHP开发中涉及到emoji表情的几种处理方法
最近几个月做微信开发比较多,存储微信昵称必不可少 可这万恶的微信支持emoji表情做昵称,这就有点蛋疼了 一般Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面insert一 ...
随机推荐
- iOS开发——高级篇——线程保活
线程保活: 顾名思义,就是保护线程不死(保证线程处于激活状态,生命周期没有结束) 正常情况,当线程执行完一次任务之后,需要进行资源回收,也就意味着生命周期结束 应用场景: 当有一个任务,随时都有可能去 ...
- hadoop第一个例子WordCount
hadoop查看自己空间 http://127.0.0.1:50070/dfshealth.jsp import java.io.IOException; import java.util.Strin ...
- 漫谈Deep PCA与PCANet
又到了无聊的写博客的时间了,因为电脑在跑程序.眼下无事可做.我认为把昨天我看的一些论文方面的知识拿出来和大家分享一下. 美其名曰我是在研究"深度学习".只是因为本人是穷屌丝一个,买 ...
- caioj1230: [图论补充]哈密顿路径
保存模版 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> ...
- POJ2528 Mayor's posters —— 线段树染色 + 离散化
题目链接:https://vjudge.net/problem/POJ-2528 The citizens of Bytetown, AB, could not stand that the cand ...
- shell网络管理
背景知识 联网就是通过网络将主机进行互联并采用不同的规范配置网络上的节点.我们以 TCP/IP 作为网络栈,所有的操作都是基于它进行的.网络是计算机系统中重要的部分.连接在网络上的每个节点都分配了一个 ...
- YTU 2418: C语言习题 矩阵元素变换
2418: C语言习题 矩阵元素变换 时间限制: 1 Sec 内存限制: 128 MB 提交: 293 解决: 155 题目描述 将一个n×n(2<n<10,n为奇数)的矩阵中最大的元 ...
- html5--switch选择结构的优化
html5--switch选择结构的优化 问题: 使用循环语句判断月份是31天还是30天 两点提示: 使用switch多条件判断语句 合理的省略break优化代码 <!DOCTYPE html& ...
- UI: 网易新闻实现
#pragma mark-(AppDelegate.H文件)-------------------------------------------------------------------- ...
- combox组合框设置高度
组合框设置高度 转载 2013年10月24日 22:54:03 1033 MFC进行界面编程时,组合框CComboBox控件在可视化设计组件的时候是无法进行高度编辑的,但是我们在实际的项目中经常需要定 ...