php錯(cuò)誤級(jí)別的設(shè)置方法
更新時(shí)間:2013年06月17日 09:53:32 作者:
PHP在運(yùn)行時(shí), 針對(duì)嚴(yán)重程度不同的錯(cuò)誤,會(huì)給以不同的提示,這里簡(jiǎn)單介紹下, 方便需要的朋友
PHP在運(yùn)行時(shí), 針對(duì)嚴(yán)重程度不同的錯(cuò)誤,會(huì)給以不同的提示。
eg:在$a沒(méi)聲明時(shí),直接相加,值為NULL,相加時(shí)當(dāng)成0來(lái)算.但是,卻提示NOTICE,即注意.
我們?cè)陂_發(fā)中, 為了程序的規(guī)范性,把報(bào)錯(cuò)級(jí)別,調(diào)的比較高NOTICE級(jí)別的也報(bào)出來(lái),有助于我們快速定位錯(cuò)誤和代碼規(guī)范,但是,在產(chǎn)品上線后,網(wǎng)站運(yùn)營(yíng)過(guò)程中,就不宜報(bào)這么多錯(cuò).
1:這種錯(cuò)誤給客戶的印象不好
2:在報(bào)錯(cuò)時(shí),把網(wǎng)站的絕對(duì)路徑,如D:\www\1015都報(bào)出來(lái)了.增大被攻擊的風(fēng)險(xiǎn)
因此,在網(wǎng)站上線后,就應(yīng)該讓報(bào)錯(cuò)級(jí)降低,少報(bào)錯(cuò)甚至不報(bào).
修改報(bào)錯(cuò)級(jí)別:
1: php.ini里修改error_reporting 選項(xiàng)
2: 可以在php頁(yè)面里,用error_reporting()函數(shù)來(lái)修改
錯(cuò)誤級(jí)別用2進(jìn)制的值來(lái)表示的: 1111 1111 1111 111從左到右,每位上的1,代表一種錯(cuò)誤級(jí)別
fatal error致命錯(cuò)誤: 0000 0000 0000 001 開啟 1
warning 警告錯(cuò)誤 : 0000 0000 0000 010 開啟 2
NOTICE 警告 : 0000 0000 0001 000 開啟 8
eg:
都報(bào)出來(lái): error_reporting(11);
不要報(bào)NOTICE: error_reporting(3);
任何錯(cuò)誤都不報(bào): error_reporting(0);
系統(tǒng)為我們把各個(gè)級(jí)別的值,用系統(tǒng)常量代替了.
E_ERROR 1
E_WARNING 2
E_NOTICE 8
報(bào)所有錯(cuò)誤: error_reporting(E_ALL);
除了NOTICE,其他都報(bào): error_reporting(E_ALL & ~E_NOTICE);
在開發(fā)中,報(bào)錯(cuò)級(jí)別高一點(diǎn),在上線產(chǎn)品中,報(bào)錯(cuò)級(jí)別要低:+
define('DEBUG',true); // 在開發(fā)時(shí),聲明一個(gè)DEBUG模式
if(defined('DEBUG')) { //檢測(cè)到處于開發(fā)模式
error_reporting(E_ALL);
} else {
error_reporting(0);
}
eg:在$a沒(méi)聲明時(shí),直接相加,值為NULL,相加時(shí)當(dāng)成0來(lái)算.但是,卻提示NOTICE,即注意.
我們?cè)陂_發(fā)中, 為了程序的規(guī)范性,把報(bào)錯(cuò)級(jí)別,調(diào)的比較高NOTICE級(jí)別的也報(bào)出來(lái),有助于我們快速定位錯(cuò)誤和代碼規(guī)范,但是,在產(chǎn)品上線后,網(wǎng)站運(yùn)營(yíng)過(guò)程中,就不宜報(bào)這么多錯(cuò).
1:這種錯(cuò)誤給客戶的印象不好
2:在報(bào)錯(cuò)時(shí),把網(wǎng)站的絕對(duì)路徑,如D:\www\1015都報(bào)出來(lái)了.增大被攻擊的風(fēng)險(xiǎn)
因此,在網(wǎng)站上線后,就應(yīng)該讓報(bào)錯(cuò)級(jí)降低,少報(bào)錯(cuò)甚至不報(bào).
修改報(bào)錯(cuò)級(jí)別:
1: php.ini里修改error_reporting 選項(xiàng)
2: 可以在php頁(yè)面里,用error_reporting()函數(shù)來(lái)修改
錯(cuò)誤級(jí)別用2進(jìn)制的值來(lái)表示的: 1111 1111 1111 111從左到右,每位上的1,代表一種錯(cuò)誤級(jí)別
fatal error致命錯(cuò)誤: 0000 0000 0000 001 開啟 1
warning 警告錯(cuò)誤 : 0000 0000 0000 010 開啟 2
NOTICE 警告 : 0000 0000 0001 000 開啟 8
eg:
都報(bào)出來(lái): error_reporting(11);
不要報(bào)NOTICE: error_reporting(3);
任何錯(cuò)誤都不報(bào): error_reporting(0);
系統(tǒng)為我們把各個(gè)級(jí)別的值,用系統(tǒng)常量代替了.
E_ERROR 1
E_WARNING 2
E_NOTICE 8
報(bào)所有錯(cuò)誤: error_reporting(E_ALL);
除了NOTICE,其他都報(bào): error_reporting(E_ALL & ~E_NOTICE);
在開發(fā)中,報(bào)錯(cuò)級(jí)別高一點(diǎn),在上線產(chǎn)品中,報(bào)錯(cuò)級(jí)別要低:+
復(fù)制代碼 代碼如下:
define('DEBUG',true); // 在開發(fā)時(shí),聲明一個(gè)DEBUG模式
if(defined('DEBUG')) { //檢測(cè)到處于開發(fā)模式
error_reporting(E_ALL);
} else {
error_reporting(0);
}
相關(guān)文章
php實(shí)現(xiàn)通用的信用卡驗(yàn)證類
這篇文章主要介紹了php實(shí)現(xiàn)通用的信用卡驗(yàn)證類,涉及信用卡的規(guī)則與php字符串操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,文中有英文原文注釋說(shuō)明,有助于更直觀的了解源碼相關(guān)信息,需要的朋友可以參考下2015-03-03php實(shí)現(xiàn)與erlang的二進(jìn)制通訊實(shí)例解析
這篇文章主要介紹了php實(shí)現(xiàn)與erlang的二進(jìn)制通訊實(shí)例解析,需要的朋友可以參考下2014-07-07php實(shí)現(xiàn)簡(jiǎn)單的語(yǔ)法高亮函數(shù)實(shí)例分析
這篇文章主要介紹了php實(shí)現(xiàn)簡(jiǎn)單的語(yǔ)法高亮函數(shù),實(shí)例分析了php通過(guò)正則表達(dá)式實(shí)現(xiàn)語(yǔ)法高亮的相關(guān)技巧,需要的朋友可以參考下2015-04-04前后端分離和跨域問(wèn)題的詳細(xì)解決方案(CORS的原理)
前后端跨域問(wèn)題由瀏覽器同源策略而來(lái),下面這篇文章主要給大家介紹了關(guān)于前后端分離和跨域問(wèn)題的詳細(xì)解決方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02php自定義時(shí)間轉(zhuǎn)換函數(shù)示例
這篇文章主要介紹了php自定義時(shí)間轉(zhuǎn)換函數(shù),可實(shí)現(xiàn)時(shí)間戳與字符串時(shí)間顯示格式之間的轉(zhuǎn)換功能,需要的朋友可以參考下2016-12-12