ecshop装完后 报错警告问题更改总结
来源:互联网 发布:mp5播放软件 编辑:程序博客网 时间:2024/06/14 20:02
Ecshop安装后,一堆错误,咋整?
PHP5.6.6上运行 ecshop 2.7.3常见问题整合
时间:2015-03-13 13:05来源:未知 作者:最模板 点击:2792次
ecshop在在PHP5.6.6版本以后,有了很多细微的变化。而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出。 最模板整理一下我遇到的问题希望对你们
ecshop在在PHP5.6.6版本以后,有了很多细微的变化。而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出。
最模板整理一下我遇到的问题希望对你们能有些帮组也为了自己以后查看。
问题1:
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in cls_template.php XXX line
出错原因:
出现以上问题是 preg_replace()函数中用到的修饰符 /e在 PHP5.5.x中已经被弃用了。在PHP 5.5以上的版本用preg_replace_callback 函数替换了preg_replace函数。
解决方法:
解决问题的方法就是将代码中使用 preg_replace 函数的部分全部替换成preg_replace_callback 函数,并且将一被废弃的/e 修饰符 删除。
例子:
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->sel ect('\\1');", $source);
替换为
return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->sel ect($r[1]); }, $source);
问题2:
Strict Standards: Only variables should be passed by reference in ......\includes\cls_template.php on line 418
出错原因:
出现这个问题的原因,貌似在php5.4中array_shift只能为变量,不能是函数返回值。
解决方法:
$tag_sel = array_shift(explode(‘ ‘, $tag));
替换成
$tag_arr = explode(‘ ‘, $tag);
$tag_sel = array_shift($tag_arr);
问题3:
Strict Standards: Non-static method cls_image::gd_version() should not be called statically in ......\includes\lib_base.php on line 346 或者
Strict Standards: Non-static method cls_image::gd_version() should not be called statically in ......\includes\lib_installer.php on line 31
出错原因: //www.zuimoban.com
如问题中提示的一样,因为 cls_image.php中 gd_version()不是 static函数所以在lib_base.php与 lib_installer.php中调用时才会出现以上问题。
解决方法:
解决方法1: 首先在lib_image.php 文件中,用Shift+F 去搜索gd_version 函数。然后在gd_version方法前加 static修饰符,是此函数变成静态函数。
解决方法2: 在lib_base.php与 lib_installer.php函数中找到 cls_image::gd_version()部分, 然后分别创建cls_image实例,之后用创建的实例再去调用 gd_version()函数。
$cls_gile = new cls_image();
return $cls_gile->gd_version();
问题4:
Deprecated: Assigning the return value of new by reference is deprecated in…
出错原因:
PHP5.3+废除了”=&”符号,对象复制用”=”
解决方法:
搜索所有PHP文件,将”=&”替换为”=”
问题5:
Strict Standards: mktime(): You should be using the time() function instead in ......\admin\shop_config.php on line 32
出错原因:
这个错误提示的意思:mktime()方法不带参数被调用时,会被抛出一个报错提示。
解决方法:
$auth = mktime();
将mktime()替换成time()方法,代码为:
$auth = time();
问题6:
Strict Standards: Redefining already defined constructor for class cls_sql_dump ......
出错原因:
原因跟PHP类中的构造函数有关,PHP早期版本是使用跟类同名的函数作为构造函数,后来又出现了使用__construct()作为构造函数,
这俩个函数可以同时存在。到了PHP5.4版本,对这俩个函数在代码中的先后顺序有了严格的要求。在PHP5.4版本下,必须__construct()在前,
同名函数在后,否则就会出现上面的的错误提示。
解决方法:
把__construct()函数放在,同名函数上面就行了。
问题7:
Strict Standards: Declaration of vbb::set_cookie() should be compatible with integrate::set_cookie($username = '', $remember = NULL)
出错问题:
vbb继承了integrate类并且重写了set_cookie() 函数,但vbb重写set_cookie函数的参数 与 其父类set_cookie 的参数不符所以出现以上问题。
解决方法:
function set_cookie ($username="")
改为
function set_cookie ($username="", $remember = NULL)
如出现类似错误,可以以同样的方法解决。
*Alipay等错误提示是,因为构造函数和 类同名够着函数位置先后反一下
function __construct() //先
{
$this->alipay();
}
function alipay() //后
{
}
*还有good_batch.php中$filter = &new stdclass;的&去掉
*cls_template.php 497错误preg_replace错误提示
ECS前台出现cls_template.php on line 493,求解决办法!!!
分享| 2015-09-13 16:14匿名 | 浏览436 次 悬赏:10
PHP
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in D:\xampp\htdocs\includes\cls_template.php on line 493
第493行代码:
$out = "<?php \n" . '$k = ' . preg_replace("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n";
2015-09-13 17:00网友采纳
热心网友
php版本估计是5.5以上了,preg_replace的修饰符e已经不能用了;
如果要调整可以用preg_replace_callback或者其他函数调整:
把
$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";
*lib_main.php 提示错误
$ext = end(explode('.', $tmp));
改为:
$arr_a = explode('.', $tmp);
$ext = end($arr_a);
- ecshop装完后 报错警告问题更改总结
- ECShop报错问题
- ecshop警告
- ECSHOP问题总结
- ecshop报错问题解决
- ecshop安装报错
- PHP5.4环境下ECSHOP网站报错问题集锦
- 修复ecshop后台部署Ueditor页面加载报错问题!
- ArcGlobe更改缓存路径报错问题
- 使用UIAlertController 报错 警告 遇到的问题
- ecshop各种报错汇总
- ecshop警告修改心得
- 更改J2E项目名称后运行报错问题修改?
- python报错问题总结
- ECShop 整合UCenter 后转移报错
- ecshop订单中配送方式报错
- ecshop 升级5.4报错解决方案
- ECSHOP如何解决Deprecated: preg_replace()报错
- java 小题目
- Appium基于安卓的各种FindElement的控件定位方法实践和建议
- Linux --- 计算程序执行时间
- 一个简单的Linux驱动程序和Makefile
- 端午就读这本书了——《Docker生产环境实践指南》附带书评
- ecshop装完后 报错警告问题更改总结
- 通过modbus协议实现arduino与电能表串口通信(仅03功能)
- Mybatis入门实例(四)——MyBatis与Spring 3.X的整合
- C++程序设计语言练习6.17 itoa 的实现
- Lua和C++交互详细总结_5_总结
- java.lang.NoClassDefFoundError: jdk1/6/0_39
- table用法
- Android Handler详细使用方法实例
- MySQL快速删除所有表