ecshop php5.4以上版本错误之preg_replace 替换成 preg_replace_callback
类似这样的报错:
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( $pattern , function ( $r ){ return '{include file=' . strtolower ( $r [1]). '}' ;}, $source );
|
转载于:https://www.cnblogs.com/dhsx/p/5467673.html
ecshop php5.4以上版本错误之preg_replace 替换成 preg_replace_callback相关推荐
- ecmall支持php5.3,在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
ecshop 问题一:商城首页报错 Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\i ...
- ecmall支持php5.3,ecmall 兼容 php5.5以上版本
在PHP5.3以上版本運行ecshop和ecmall出現的問題及解決方案 ecshop 問題一:商城首頁報錯 Strict Standards: Only variables should be pa ...
- dedecms php5.4 无法退出后台,解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法...
为什么会出现更换PHP5.4以上版本后Dedecms后台登录空白的情况,本文将给大家详细分析,找出真正原因以及解决办法. 把PHP的版本从5.2.14升到了5.4.15,升级完后dedecms后台却打 ...
- 关于解决jdbc版本错误问题
关于解决jdbc版本错误问题 最近在做一个项目,在使用IDEA测试某个接口时出现了这个异常: 然后百度了一下发现很多都说是mysql-connector-java.jar包版本不一样,或者是jdbc. ...
- Archiva 2.2.3 安装运行的时候出现协议版本错误
2019独角兽企业重金招聘Python工程师标准>>> 在 Archiva 安装成功后运行的时候出现协议版本错误: Caused by: javax.net.ssl.SSLExcep ...
- php5.2 json,php5.2以上版本json_encode兼容性
php5.2以下版本json_encode兼容性 php5.1版本通过编译加载的json.so,在使用json_encode时会把键名为空的数组 $arr =array(''=>array('i ...
- Unsupported major.minor version 51.0 jdk版本错误解决方案 eclipse版
最近将公司svn上项目检出 一运行报如下图错误 Caused by: java.lang.UnsupportedClassVersionError: com/bfsuol/common/util/My ...
- 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数据库 ...
- spyder 5.0.0 提示依赖项spyder-kernels版本错误
spyder升级5.0.0运行时提示spyder-kernels版本错误 实际上 spyder-kernels已经是 2.0.1 这个错误提示目前可以不理它,待 spyder下个版本修复它. 见:ht ...
最新文章
- 新概念机房运维监控三大新理念
- c语言根据日期算星期几入门,c语言详解 蔡勒(Zeller)公式计算某一天是星期几 极其方便...
- luogu P1341 无序字母对(欧拉回路应用、模板)
- 一线程序员年薪90万,不敢结婚不敢要孩子,被父母怼:堂弟月薪4千二胎都有了,家里最挫的就是我!...
- 卷积层计算量(FLOPS)和参数量的计算
- 简单工厂模式、工厂方法模式、抽象工厂模式 之间的对比
- linux ajp集群,Linux下apache tomcat ajp_proxy 负载均衡+集群+session 复制
- Excel2010中VLOOKUP函数跨工作簿使用实例:
- LeetCode 829. 连续整数求和(数学)
- 导出到文件_Java项目导出可运行的jar文件
- 蔚来发布首款自动驾驶车型ET7 补贴前起售价44.8万元
- http之httpClient工具类
- MCSA / Windows Server 2016 安装Desktop Experience
- List集合去重的常见及常用的四种方式
- 图像的三次B样条插值原理与C++实现
- [混迹IT职场系列]一、转正的那些事儿
- Node - 从0基础到实战企业官网
- SAP用户应该知道的销售订单(协议)的重要控制逻辑
- 高度可定制可用于商用目的全流程供应链系统(全部源码)
- 【原创】2009年8月25日老谷项目管理MSN群专题—敏捷生态