關於ecshop Strict,notice,deprecated報錯無法關閉問題

如果使用5.3以上版本的php按照ecshop很容易遇到如下一些報錯問題:

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

這些問題按經驗說可以通過修改php.ini中的error_reporting來屏蔽,例如:

error_reporting =E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

然而令我費解的是,這樣屏蔽根本無效!

我就奇了個怪了,我都強制關閉了php報錯怎麼還會報錯呢?

天殺的,原來ecshop的cls_template.php這個文件強制開啓了error_report,而且強制自定義了報錯級別!

ecshop的源碼真的是古董級別的,最兼容的php版本居然是5.3系,然而如今php7的時代,最低也得使用一下5.6系列的php

解決方案

修改ecshop的/includes/cls_template.php文件:
另外還有對應的手機版/mobile/includes//cls_template.php文件
找到所有的error_reporting全部修改爲

//error_reporting(E_ALL ^ E_NOTICE); //這是原來的坑比代碼
 error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

再或者簡潔點,直接一個E_ERROR解決問題

 error_reporting(E_ERROR);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章