关于thinkhphp3.1中废弃 preg_replace /e 修饰符
警告:preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
网上查了下 发现 php5.5版本以上 就废弃了 preg_replace 函数中 /e 这个修饰符
/e 这个修饰符的意思 就是让 正则替换的 时候 替换规则 支持 php 代码
解决方案:只要 把 preg_replace 里面 有 /e 修饰符的代码 修改成 preg_replace _callback 然后重新写下就好了
最简单的 写法:
preg_replace("/([A-Z])/e", "'_' . strtolower('\\1')", $str)
修改成
preg_replace("/([A-Z])/",'gwyy', $str); //在类中时写成:['gwyy'] 替换成 array($this,'gwyy')
function gwyy($match) {
return '_'.strtolower($match[1]);
}
preg_replace_callback('/([A-Z])/', function ($matches) {
return '_' . strtolower($matches[0]);
}, $str)
使用了 类里面的自定义方法:
$that = $this; //这里 用 $that 代替 $this;
$patterns = '/'.$begin.$parseTag.$n1.'\/(\s*?)'.$end.'/is';
$content=preg_replace_callback($patterns, function($matches) use($tagLib,$tag,$that){
return $that->parseXmlTag($tagLib, $tag, $matches[1], '');
}, $content);
相关文章
- 关于如何构建一个微博型广播(转)
- 关于jQuery中.attr()和.prop()
- 关于年终奖励的扣税算法BUG
- (C++)关于i++和i++的左值、右值问题
- 关于DHCP——一些你可能不知道的东西
- 群里有朋友关于SAP Spartacus的疑问
- 关于 TypeScript 联合类型 union type 赋值的一个错误消息
- 【华为云技术分享】避坑指南:关于SPDK问题分析过程
- 下列关于数组的描述,错误的是()
- 关于分析定位问题和日志打印策略的思考
- 解读刘强东关于人才的两个标准和5个层次
- 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事
- 关于ORM,以及Python中SQLAlchemy的sessionmaker,scoped_session
- 关于Java:Collectors.summingInt()与mapToInt()与sum()