php高版本安装ecshop错误解决方法

1、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(); 即可

2、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); 即可

3、Strict Standards: Only variables should be passed by reference in 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);

$tag_sel = array_shift($tag_arr); 即可

4、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 = '/<!--\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';

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

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

5、Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in F:\xampp\htdocs\ceshi\includes\cls_template.php on 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"; 即可

6、Strict Standards: Only variables should be passed by reference in 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); 即可

7、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); 即可

8、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)

9、Strict Standards: mktime(): You should be using the time() function instead in F:\xampp\htdocs\ceshi\admin\sms_url.php on line 31

将$auth = mktime();

替换为

$auth = time();

10、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() 在前,同名函数在后

例如:

function __construct()

{

$this->paypal();

}

function paypal()

{

}