lib_base.php on line 346,全部总结—php(5.3以上)高版本安装ECShop错误解决办法

892b6818cca5e17a0709417da95f0ed1.png

Strict Standards: Non-static method cls_image::gd_version() should not be called statically in

F:\xampp\htdocs\ceshi\includes\lib_base.php on line 346

找到

\lib_base.php

第346行

将它注释

//return cls_image::gd_version();

添加

$p = new cls_image();

return $p->gd_version();

即可;

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

in F:\xampp\htdocs\ceshi\includes\cls_template.php on line 300

找到\lib_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);

即可

StrictStandards:Onlyvariablesshouldbepassedbyreferencein

F:\xampp\htdocs\ceshi\includes\cls_template.php on line 422

找到\lib_template.php

第422行

将它注释

//$tag_sel = array_shift(explode(' ', $tag));

添加

$tag_arr = explode(' ', $tag);

ag_sel = array_shift($tag_arr);

即可;

Deprecated: preg_replace(): The /e modifier is deprecated, use

preg_replace_callback instead in F:\xampp\htdocs\ceshi\includes\cls_template.php on

line 1074

找到\lib_template.php

第1074行

将它注释

//$pattern = '/.*?

';

// $replacement = "'{include file='.strtolower('\\1'). '}'";

//$source= preg_replace($pattern, $replacement, $source);

添加

$pattern = '/.*?/s';

$replacement = function($r){return '{include file='.strtolower($r[1]). '}';};

$source = preg_replace_callback($pattern, $replacement, $source);

即可

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in

F:\xampp\htdocs\ceshi\includes\cls_template.phpon line 496

找到\lib_template.php

第496行

将它注释

//$out = "<?php  \n" . '$k = ' . preg_replace("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n";

添加

$out = "<?php  \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/",

function(){return

stripslashes(trim('\\1','\''));}, var_export($t, true)) . ";\n";

即可;

Strict Standards: Onlyvariables shouldbepassedbyreferencein

F:\xampp\htdocs\ceshi\includes\lib_main.php on line 1329

找到

\lib_main.php

第1329行

将它注释

// $ext = end(explode('.', $tmp));

添加

$ext = explode('.', $tmp);

$ext = end($ext);

即可;

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in F:\xampp\htdocs\ceshi\includes\cls_template.php

on line 556

找到

\lib_template.php

第556行

将它注释

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

添加

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

即可

Strict Standards: Declaration of vbb::set_cookie() should be compatible with

integrate::set_cookie($username = '', $remember = NULL)

子类的函数跟父类的同名,

必须使子类的函数参数跟父类的对应函数参数个数相同

依据错误提示,修改例如:

function set_cookie ($username="")

改为

function set_cookie ($username="", $remember = NULL)

Strict Standards: mktime(): You should beusing the time() function instead in

F:\xampp\htdocs\ceshi\admin\sms_url.php on line 31

将$auth = mktime();

替换为

$auth = time();

Strict Standards: Redefining already defined constructor for class alipay in

F:\xampp\htdocs\ceshi\includes\modules\payment\alipay.php on line 85

PHP 类,有两种构造函数,一种是跟类同名的函数,一种是

____construct()。从PHP5.4开始,对这两个函数出现的顺序做了最严格的定义,必须是____construct()

在前,同名函数在后

其中使用和类名相同点函数名作为构造函数是php4时代的写法,php5时代的构造函数是 __construct(),ecshop为了兼容老版本的php,所以采用了上面的写法。

但是从php5.4开始,对于这样的两种写法同时出现的情况,要求必须__construct()在前,同名函数在后,所以只需要对调两个函数的位置即可。

Strict standards: Redefining already defined constructor for class cls_sql_dump in D:\wamp\www\ecshop\admin\includes\cls_sql_dump.php on line 90

Strict standards: Non-static method cls_sql_dump::get_random_name() should not be called statically in D:\wamp\www\ecshop\admin\database.php on line 64

解决办法

根据错误提示 把 cls_sql_dump的 function __construct()改到  function cls_sql_dump()的前面

把 cls_sql_dump的 function get_random_name()改成 static  function get_random_name()

Deprecated: Assigning the return value of new by reference is deprecated in  \admin\sitemap.php on line 46

$sm =& new google_sitemap();

解决办法

在5.3版本之后已经不允许在程序中使用”=&”符号。如果你的网站出现了Deprecated: Assigning the return value of new by reference is deprecated in 错误,别着急,先定位到出错的文件,查找下是不是在程序中使用了”=&”,例如刚才定位到网站程序中发现了下图的程序,发现使用了”=&”符号,去掉‘&’符号之后程序运行正常;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值