推荐使用 读书导航 极客导航 :125啦极客导航(http://www.biumall.com/jike.html)
PHP版本升级后preg_replace过期了,虽然都可以用,为了安全考虑,PHP官方推荐使用preg_replace_callback替代。
php手册
(PHP 4 >= 4.0.5, PHP 5, PHP 7) preg-replace-callback
(PHP 4, PHP 5, PHP 7) preg_replace
下面例子摘抄于《preg_replace_callback替换数组问题?》,感谢给力的网友。
最近我也在学习这个,因此摘抄于此记录一下。
$tpl = preg_replace(
['/\s*([,;:\{\}])\s*/', '/[\t\n\r]/', '/\/\*.+?\*\//'],
['\\1', '', ''],
$tpl
);
得到赞同的回答如下
$newText = preg_replace_callback(
'/(.*?)(\s*([,;:\{\}])\s*)(.*?)([\t\n\r])(.*?)(\/\*.+?\*\/)(.*?)/i',
function($match){
$replaceArr = ['\\1', '', ''];
return $match[1].$replaceArr[1].$match[3].$replaceArr[2].$match[5].$replaceArr[3].$match[7];
},
$yourText
);
使用者类似的方式,发现不太对,得不到我想要的结果。
因此另外寻找其他方法。
--------------------------------正确的方法--------------------------------
在其他地方,参考外国博客(忘记地址了)参考类似的思路,使用下面的就可以解决preg_replace_callback中使用两个数组preg_replace_callback
$value = array('/\s*([,;:\{\}])\s*/', '/[\t\n\r]/', '/\/\*.+?\*\//');
$replace = array(
function ($matches) {
return $matches[1];
},
function ($matches) {
return "";
},
function ($matches) {
return "";
});
#$content 存放结果
for ($i = 0; $i < count($value); $i++) {
$content = preg_replace_callback($value[$i], $replace[$i], $content);
}
答案只是参考,自己多验证行。
当然如果你的是PHP7以上的,那就更简单了,那就可以使用preg_replace_callback_array这个,这个对于数组更简单
php手册:preg_replace_callback_array
return preg_replace_callback_array(
[
$search[0] => function ($matches) {
return matches[1];
},
$search[1] => function ($matches) {
return "";
},
$search[2] => function ($matches) {
return "";
}
],
$content
);
以上仅供参考,谢谢。
希望读者把 http://www.biumall.com/ 设置为您的主页,多谢
历史上的今天
暂无评论...
随机推荐
JNI动态注册封装C++版
前言之前JNI一直用C语言写,但发现Android Framework中大都用C++写,为了阅读方便,改为C++。其实C++跟C语言写法一样的,只不过C++更简洁些。正文修改点,举个例子不同点hello.c文件后缀改为hello.cpp,还有就是C++传入的参数更少,看起来更简洁。he...
再谈Android日夜模式
前言之前介绍过Android日夜模式的使用,日夜模式是Android高版本自带的一种模式,很方便也很使用。如果换肤只有2种皮肤,这个是最佳选择,因为Android日夜模式只要按照规则即可实现。虽然介绍过,但很多细节还是没有说明白,因此由写一篇流水文,方便自己回顾。正文日夜模式就是我们常说的...
吴念真:饱了别人,瘦了自己
当我们第一眼看到阿婆的自助餐厅时,还以为自己找错了地方呢!以为自己走入了一个工地的厨房,一个受雇的欧巴桑正准备免费的午餐,等待忙了一个早上的工人,让他们填饱肚子。话说回来,这样的印象跟事实其实相去不远。经营这家没有招牌的自助餐厅的阿婆庄朱玉女士,唯一的经营哲学就是让你吃到饱!今年七十六岁的她,从早...
林清玄:再加两个苹果
一位小学老师对我说起,他怎么使一班小学生被改造的秘诀。他的学生在低年级的时候遇到一个非常严格的老师,给学生的作业很多,而给学生的评价却很低。在这位老师的笔下很少有学生可以得到甲,得到乙已经很不错,有许多学生拿到丙、丁,使得学生的家长对自己的孩子都不谅解,学生对学习也逐渐失去信心了。当这班学生升到...
林清玄:幸福的无关
我小时候对汽水有一种特别奇妙的向往,原因不在汽水有什么好喝,而是由于喝不到汽水。我们家是有几十口人的大家族,小孩依序排行就有18个之多,记忆里东西仿佛永远不够吃,更别说喝汽水了。喝汽水的时机有三种,一种是喜庆宴会,一种是过年的年夜饭,一种是庙会节庆。即使有汽水,也总是不够喝。到要喝汽水时好像进行一...
SQLite中的数据排序简介
前言本文摘抄,记录Sqlite使用不同的排序方式对各种数据类型进行排序。方便自己查阅和使用。正文下面只摘抄了一部分。普通排序文本类型(Text/String):按字典顺序排序:使用ORDER BY语句,并在字段名称后添加COLLATE NOCASE。例如:SELECT * FR...