博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECSHOP如何解决DEPRECATED: PREG_REPLACE()报错
阅读量:4567 次
发布时间:2019-06-08

本文共 1127 字,大约阅读时间需要 3 分钟。

类似这样的报错:

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in D:\wyh\ecshop\includes\cls_template.php on line 300

1、错误原因:

preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。
如果你的PHP版本恰好是PHP5.5.X,那你的ECSHOP肯定就会报类似这样的错误。

2、解决办法:

一、将 cls_template.php的300行

return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);

换成:

return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);

二、将cls_template.php的493行

$out = "

换成:

$out = 

三、将cls_template.php的552行

$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);

换成:

$val = preg_replace_callback("/\[([^\[\]]*)\]/", function($r) {return '.'.str_replace('$','$',$r[1]);}, $val);

四、将cls_template.php的1069行

$pattern = '/
.*?
/se';$replacement = "'{include file='.strtolower('\\1'). '}'";$source = preg_replace($pattern, $replacement, $source);

换成:

$pattern = '/
.*?
/s';$source = preg_replace_callback($pattern, function($r){return '{include file='.strtolower($r[1]). '}';}, $source);

转载于:https://www.cnblogs.com/yxhblogs/p/5886191.html

你可能感兴趣的文章
2.6python基础之常用模(二)
查看>>
Group by子句和空值
查看>>
计算字符的相似度【转】
查看>>
更新centos7的kernel
查看>>
day05
查看>>
EFI环境下的Ubuntu&Win10双系统安装
查看>>
oracle 的三个主要内存结构SGA,PGA,UGA
查看>>
PHP大批量插入数据库的3种方法和速度对比
查看>>
Apache Spark大数据分析入门(一)
查看>>
java8使用stream的collect进行list转map注意事项
查看>>
部分和问题
查看>>
进程,线程
查看>>
[。。。]不知道是事故还是故事的东西
查看>>
AtCoder Beginner Contest 073
查看>>
链表的回文结构
查看>>
slqmap简单使用
查看>>
如何禁用或重新启用计算机的休眠功能
查看>>
window函数 resetAccumulator
查看>>
AKKA好文
查看>>
hdu - 1728逃离迷宫 && hdu - 1175 连连看 (普通bfs)
查看>>