Heim >Backend-Entwicklung >PHP-Tutorial >ECSHOP-Fehlerbehebung bei Verwendung einer höheren PHP-Version

ECSHOP-Fehlerbehebung bei Verwendung einer höheren PHP-Version

*文
*文Original
2017-12-21 10:16:183635Durchsuche

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文件详解

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

Das obige ist der detaillierte Inhalt vonECSHOP-Fehlerbehebung bei Verwendung einer höheren PHP-Version. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn