Home >Backend Development >PHP Tutorial >ECSHOP error resolution when using higher version of PHP

ECSHOP error resolution when using higher version of PHP

*文
*文Original
2017-12-21 10:16:183575browse

ECSHOP在较高的PHP版本中运行可能会有一些兼容问题报错,让我们来看看如何去解决吧!

相关mysql视频教程推荐:《mysql教程

第一种

     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

    解决办法:
    按照文件路径,找到  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

    解决办法:
    按照文件路径,找到   return preg_replace("/{([^}{\n])}/e", "$this->select('\1');", $source);
    修改为:

    return preg_replace_callback("/{([^}{\n])}/", function($r){return $this->select($r[1]);}, $source);

第三种

    Strict Standards: Only variables should be passed by reference 
      in F:\xampp\htdocs\ceshi\includes\cls_template.php on line 422

    解决办法:
    按照文件路径,找到$tag_sel = array_shift(explode(' ', $tag));
    修改为:
    $tag_arr = explode(' ', $tag);
    $tag_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

    解决方法
    按照文件路径,找到

    $pattern = '/.?/se';
    $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.php on line 496

    解决方法
    按照文件路径,找到

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

    修改为:

    $out = "<?php \n" . &#39;$k = &#39; . preg_replace_callback("/(&#39;\$[^,]+)/", function(){return stripslashes(trim(&#39;\1&#39;,&#39;&#39;&#39;));}, var_export($t, true)) . ";\n";

第六种

    Strict Standards: Only variables should be passed by reference
            in F:\xampp\htdocs\ceshi\includes\lib_main.php on line 1329

    解决办法
    按照文件路径,找到

    $ext = end(explode(&#39;.&#39;, $tmp));

    修改为:

    $ext = explode(&#39;.&#39;, $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

    解决办法
    按照文件路径,找到

    $val = preg_replace("/[([^[]])]/eis", "&#39;.&#39;.str_replace(&#39;$&#39;,&#39;$&#39;,&#39;\1&#39;)", $val);

    修改为:

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

第八种

    Strict Standards: Declaration of vbb::set_cookie() should be compatible with integrate::set_cookie($username = &#39;&#39;, $remember = NULL)

    解决办法
    子类的函数跟父类的同名,必须使子类的函数参数跟父类的对应函数参数个数相同
    依据错误提示,修改例如:

    function set_cookie ($username="")

    改为

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

第九种

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

第十种

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

相关教程:

关于ecshop验证码图片问题的解决

ecshop $_CFG

ecshop中的init.php文件详解

以上是本篇文章的全部内容,同学们也可以在评论区进行讨论哦~

The above is the detailed content of ECSHOP error resolution when using higher version of PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn