這篇文章主要介紹了php設(shè)置錯誤級別的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
在遠(yuǎn)安等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,遠(yuǎn)安網(wǎng)站建設(shè)費(fèi)用合理。
php錯誤級別設(shè)置
在php.ini中可以設(shè)置服務(wù)器對錯誤的報(bào)警級別。在默認(rèn)情況下,php將報(bào)告除了通知之外的所有錯誤。錯誤報(bào)告級別是通過一些預(yù)定義的常量來設(shè)置的,
語法:
int error_reporting ( [int level] )
如果參數(shù) level 未指定,當(dāng)前報(bào)錯級別將被返回。下面幾項(xiàng)是 level 可能的值:
在php.ini文件中,默認(rèn)的報(bào)告是除了通知之外的所有錯誤,如下語句設(shè)定:
error_reporting = E_ALL & ~ (E_NOTICE)
在上面的表達(dá)式中,符號"&"表示幾個條件這間的并列,而"~"表示否定,即NOT的含義。如果想忽略警告信息,可以設(shè)定如下語句:
error_reporting = E_ALL & ~(E_NOTICE) & ~(E_WARNING)
在php.ini文件中,和錯誤有關(guān)的設(shè)置有如下幾個:
(1)error_reporting,設(shè)定錯誤級別
(2)display_errors,是否顯示錯誤報(bào)告,設(shè)置為ON則打開,設(shè)置為OFF則關(guān)閉所有錯誤提示
(3)log_errors,默認(rèn)設(shè)置為OFF,是否記錄錯誤日志;
(4)track_errors,默認(rèn)設(shè)置為OFF,該選項(xiàng)可以幫助解決代碼中的錯誤,而不是讓PHP提供其默認(rèn)的功能。
PHP的錯誤報(bào)告
php.ini 文件中有許多配置設(shè)置。您應(yīng)當(dāng)已經(jīng)設(shè)置好自己的php.ini文件并把它放在合適的目錄中,就像在Linux上安裝PHP和Apache2的文檔說明中所示的那樣。在調(diào)試 PHP 應(yīng)用程序時,應(yīng)當(dāng)知道兩個配置變量。下面是這兩個變量及其默認(rèn)值:
display_errors = Off error_reporting = E_ALL
通過在 php.ini 文件中搜索它們,可以發(fā)現(xiàn)這兩個變量當(dāng)前的默認(rèn)值。display_errors 變量的目的很明顯 —— 它告訴 PHP 是否顯示錯誤。默認(rèn)值是 Off。但是,要讓開發(fā)過程更加輕松,請把這個值設(shè)為 On:
display_errors = On
error_reporting變量的默認(rèn)值是 E_ALL。這個設(shè)置會顯示從不良編碼實(shí)踐到無害提示到出錯的所有信息。E_ALL 對于開發(fā)過程來說有點(diǎn)太細(xì),因?yàn)樗谄聊簧蠟橐恍┬∈拢ɡ缱兞课闯跏蓟┮诧@示提示,會搞糟瀏覽器的輸出。我只想看到錯誤和不良編碼實(shí)踐,但是不想看到 無害的提示。所以,請用以下值代替 error_reporting 的默認(rèn)值:
error_reporting = E_ALL & ~E_NOTICE
重新啟動 Apache,就全部設(shè)置好了。接下來,將學(xué)習(xí)如何在 Apache 上做同樣的事。
服務(wù)器上的錯誤報(bào)告
依賴于 Apache 正在做的工作,在 PHP 中打開錯誤報(bào)告可能沒法工作,因?yàn)樵谟?jì)算機(jī)上可能有多個 PHP 版本。有時很難區(qū)分 Apache正在使用哪個 PHP 版本,因?yàn)?Apache 只能查看一個 php.ini 文件。不知道 Apache 正在使用哪個 php.ini 文件配置自己是一個安全問題。但是,有一種方法可以在 Apache 中配置 PHP 變量,從而保證設(shè)置了正確的出錯級別。而且,最好知道如何在服務(wù)器端設(shè)置這些配置變量,以否決或搶占 php.ini 文件,從而提供更高級別的安全性。
在配置 Apache 時,應(yīng)該已經(jīng)接觸過
php_flag display_errors on php_value error_reporting 2039
這會覆蓋在 php.ini 文件中為 display_errors 已經(jīng)設(shè)置的標(biāo)志,以及 error_reporting 的值。值 2039 代表 E_ALL & ~E_NOTICE。如果愿意采用 E_ALL,請把值設(shè)為 2047。同樣,還是要重啟 Apache。
接下來,要在服務(wù)器上測試錯誤報(bào)告。
關(guān)于error_reporting()這個函數(shù),它是可以屏蔽到一些錯誤信息,但是PHP 核心造成的錯誤,是無法屏蔽的,因?yàn)镻HP 核心造成的錯誤會直接導(dǎo)致PHP文件編譯失敗,因?yàn)闀鴮懜袷經(jīng)]有按照PHP的編碼規(guī)則寫而造成的錯誤,是無法屏蔽的。
常見的如下:
// Turn off all error reporting;關(guān)閉所有的錯誤 error_reporting(0); // Report simple running errors;報(bào)告一個簡單的運(yùn)行錯誤 error_reporting(E_ERROR | E_WARNING | E_PARSE); // Reporting E_NOTICE can be good too (to report uninitialized // variables or catch variable name misspellings …);包括報(bào)告一些未初始化的變量或捕捉變量名的拼寫錯誤 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Report all errors except E_NOTICE // This is the default value set in php.ini;報(bào)告所有的錯誤但不包括E_NOTICE error_reporting(E_ALL ^ E_NOTICE); // Report all PHP errors (bitwise 63 may be used in PHP 3);報(bào)告所有的錯誤 error_reporting(E_ALL); // Same as error_reporting(E_ALL);同上 ini_set(’error_reporting’, E_ALL);
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享php設(shè)置錯誤級別的方法內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!