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

2018-10-21 14:45:24 admin 0

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()

    {

    }