类似这样的报错:

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead inD:\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 "<?php \n" '$k = ' . preg_replace("/(\'\\$[^,]+)/e" ,"stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n";

换成:

$out = <?php \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/" , function($r) {return stripslashes(trim($r[1],'\''));}, var_export($t, true)) . ";\n";

三、将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 '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';
$replacement "'{include file='.strtolower('\\1'). '}'";
$source = preg_replace($pattern$replacement$source);

换成:

$pattern '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/s';
$source = preg_replace_callback($patternfunction($r){return '{include file='.strtolower($r[1]). '}';}, $source);

转载于:https://www.cnblogs.com/dhsx/p/5467673.html

ecshop php5.4以上版本错误之preg_replace 替换成 preg_replace_callback相关推荐

  1. ecmall支持php5.3,在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案

    ecshop 问题一:商城首页报错 Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\i ...

  2. ecmall支持php5.3,ecmall 兼容 php5.5以上版本

    在PHP5.3以上版本運行ecshop和ecmall出現的問題及解決方案 ecshop 問題一:商城首頁報錯 Strict Standards: Only variables should be pa ...

  3. dedecms php5.4 无法退出后台,解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法...

    为什么会出现更换PHP5.4以上版本后Dedecms后台登录空白的情况,本文将给大家详细分析,找出真正原因以及解决办法. 把PHP的版本从5.2.14升到了5.4.15,升级完后dedecms后台却打 ...

  4. 关于解决jdbc版本错误问题

    关于解决jdbc版本错误问题 最近在做一个项目,在使用IDEA测试某个接口时出现了这个异常: 然后百度了一下发现很多都说是mysql-connector-java.jar包版本不一样,或者是jdbc. ...

  5. Archiva 2.2.3 安装运行的时候出现协议版本错误

    2019独角兽企业重金招聘Python工程师标准>>> 在 Archiva 安装成功后运行的时候出现协议版本错误: Caused by: javax.net.ssl.SSLExcep ...

  6. php5.2 json,php5.2以上版本json_encode兼容性

    php5.2以下版本json_encode兼容性 php5.1版本通过编译加载的json.so,在使用json_encode时会把键名为空的数组 $arr =array(''=>array('i ...

  7. Unsupported major.minor version 51.0 jdk版本错误解决方案 eclipse版

    最近将公司svn上项目检出 一运行报如下图错误 Caused by: java.lang.UnsupportedClassVersionError: com/bfsuol/common/util/My ...

  8. php5.6 win2008 mssql,Php5.6.31连接sqlserver 2008R2数据库问题sqlsrv(php5.3及以上版本)与mssql(php5.3以前版本)②...

    Php5.6.31连接sqlserver2008R2数据库 1.环境配置 Win7(win8.1)  64 +Apache2.4 + PHP5.6.31 + SQL Server 2008 R2数据库 ...

  9. spyder 5.0.0 提示依赖项spyder-kernels版本错误

    spyder升级5.0.0运行时提示spyder-kernels版本错误 实际上 spyder-kernels已经是 2.0.1 这个错误提示目前可以不理它,待 spyder下个版本修复它. 见:ht ...

最新文章

  1. 新概念机房运维监控三大新理念
  2. c语言根据日期算星期几入门,c语言详解  蔡勒(Zeller)公式计算某一天是星期几  极其方便...
  3. luogu P1341 无序字母对(欧拉回路应用、模板)
  4. 一线程序员年薪90万,不敢结婚不敢要孩子,被父母怼:堂弟月薪4千二胎都有了,家里最挫的就是我!...
  5. 卷积层计算量(FLOPS)和参数量的计算
  6. 简单工厂模式、工厂方法模式、抽象工厂模式 之间的对比
  7. linux ajp集群,Linux下apache tomcat ajp_proxy 负载均衡+集群+session 复制
  8. Excel2010中VLOOKUP函数跨工作簿使用实例:
  9. LeetCode 829. 连续整数求和(数学)
  10. 导出到文件_Java项目导出可运行的jar文件
  11. 蔚来发布首款自动驾驶车型ET7 补贴前起售价44.8万元
  12. http之httpClient工具类
  13. MCSA / Windows Server 2016 安装Desktop Experience
  14. List集合去重的常见及常用的四种方式
  15. 图像的三次B样条插值原理与C++实现
  16. [混迹IT职场系列]一、转正的那些事儿
  17. Node - 从0基础到实战企业官网
  18. SAP用户应该知道的销售订单(协议)的重要控制逻辑
  19. 高度可定制可用于商用目的全流程供应链系统(全部源码)
  20. 【原创】2009年8月25日老谷项目管理MSN群专题—敏捷生态

热门文章

  1. vue表格导出到Excel
  2. 使用excel批量创建android联系人
  3. @CacheEvict 清除多个key
  4. 技术债务就像俄罗斯方块,你永远都赢不了!
  5. Java 线程池艺术探索
  6. 操作系统:进程的三种状态
  7. 超键、候选键、主键、外键、联合主键、复合主键
  8. 使用WatchService监控文件变化
  9. 数据结构—什么是基数排序?
  10. jQuery 对象及伪数组