推荐使用 读书导航 极客导航 :125啦极客导航(http://www.91es.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.91es.com/ 设置为您的主页,多谢
历史上的今天
暂无评论...
随机推荐
史铁生:老家
常要在各种表格上填写籍贯,有时候我写北京,有时候写河北涿州,完全即兴。写北京,因为我生在北京长在北京,大约死也不会死到别处去了。写涿州,则因为我从小被告知那是我的老家,我的父母及祖上若干辈人都曾在那儿生活。查词典,籍贯一词的解释是:祖居或个人出生地。——我的即兴碰巧不错。可是这个被称为老家的地方,...
Android View Binding的使用简介
前言简单记录一下,方便自己查阅。好记性不如烂笔头正文PS: 本文内容大都摘抄,感谢什么是View BindingView Binding是Android Studio 3.6推出的新特性,目的是为了替代findViewById(内部实现还是使用findViewById)。在启动视图绑...
Linux signal 常见的信号含义表
前言简单记录一下Linux signal 常见的信号含义。PS : 本文摘抄,只是方便自己查阅而已。正文信号表 SIGHUP 1 /* Hangup (POSIX). */ 终止进程 终端线路挂断S...
张承志:听人读书
有两件杯水末梢的小事,总想把它们记下备忘。其实备忘是不必的,因为已经顽固不弃地把它们忆了这么久,记之纸笔毕竟还是因为感动--哪怕周围写大潮大势的多么热闹,我还是更重视自己这种真实的小小感情。都是听孩子念书。地隔千里:一处是北国边界乌珠穆沁草地,一处是贫瘠之冠的宁夏山区小村。在内蒙插队到了那个年...
[摘]Android多语言目录对照表
前言本文摘抄,原文链接在文末。有参与外销项目,对各国翻译存放的目录很懵,老是忘记哪个对应哪个,今天看到网上相关整理,摘抄于此,方便自己查阅。好记性不如烂笔头正文语言android文件夹名称中文values-zh-rCN英文(US)values英文(UK)...
WordPress常用的函数介绍
前言记录一下WordPress中的常用的条件判断函数和类型判断函数等。记录一下,方便自己查阅。正文基本条件判断is_home() : 是否为主页is_single() : 是否为内容页(Post)is_page() : 是否为内容页(Page)is_category() : 是否为C...