ECSHOP如何解决Deprecated: preg_replace()报错
来源:互联网 发布:腾讯云 centos pptp 编辑:程序博客网 时间:2024/06/05 06:32
类似这样的报错:
( ! ) Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in E:\group1\includes\cls_template.php on line551
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
);
0 0
- ECSHOP如何解决Deprecated: preg_replace()报错
- ECSHOP如何解决Deprecated: preg_replace()报错
- ECSHOP如何解决Deprecated: preg_replace()报错
- Ecshop如何解决Deprecated: preg_replace()报错
- ECSHOP如何解决Deprecated: preg_replace()报错
- ECSHOP如何解决Deprecated: preg_replace()报错
- ECSHOP解决Deprecated: preg_replace()报错
- ECSHOP如何解决DEPRECATED: PREG_REPLACE()
- 安装ecshop 常见的 Strict Standards: array_shift()和Deprecated: preg_replace():
- PHP Deprecated: preg_replace()问题
- 解决Deprecated: preg_replace(): The /e modifier is deprecated的三个方法
- nagiosQL访问时报错PHP message: PHP Deprecated: preg_replace(): The /e modifier is deprecated, use preg_re
- ecshop在php5.5+报preg_replace/e错误的几处改动
- ecshop助理上传报错 无法连接服务器:XML 文档只能有一个顶层元素。line2 <b> Deprecated</b>:Assignig the Deprecated</b>: 7510
- 如何解决刚安装完hadoop报Warning: $HADOOP_HOME is deprecated的方法
- ECShop在PHP 5.4以上版本报错的解决
- 解决php5.3中Deprecated: Assigning the return value of new by reference is deprecated in报错
- ecshop报错问题解决
- Oracle练习题
- Oracle面试题1
- Hive JDBC运行连接注意事项
- 理解Angular中的$apply()以及$digest()
- 1054. The Dominant Color (20)
- ECSHOP如何解决Deprecated: preg_replace()报错
- 更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支
- Android中PopupWindow的使用
- Oracle优化面试题
- CentOS正确关机方法
- git merge命令
- 性能分析之-- JAVA Thread Dump 分析综述
- 迭代器模式-c++实现
- swift利用Alamofire上传图片