PHP錯誤報告和錯誤資訊設定詳解

2022-03-16 21:24:16 字數 1170 閱讀 5294

在php**開發中,錯誤(bugs)除錯和解決是必不可少的部分,在**除錯階段,錯誤資訊能給我們很大幫助,當**上線之後,我們是否也應該將 原始的錯誤資訊展示在使用者面前呢?答案是否定的,為了提高使用者體驗,我們需要設定php錯誤報告的型別和級別,將錯誤資訊以合理的方式通知使用者,同時也避免為惡意使用者提供有價值的資訊,比如檔案路徑、資料庫資訊等。   

下面介紹php中的錯誤報告以及設定錯誤報告的方法。

php中的錯誤報告

在處理錯誤資訊之前需要對不同型別的錯誤有所了解,php錯誤報告設定主要有兩種方式,一種是通過php配置檔案php.ini進行設定,另一種方式是通過error_reporting()函式設定錯誤報告的型別,都可以達到控制錯誤級別和顯示錯誤資訊的目的。

php.ini中如何設定錯誤報告的級別?

開啟php.ini檔案,找到error_reporting = e_all & ~e_notice,這是預設的錯誤報告設定,使用了位操作,表示報告除了e_notice以外的所有錯誤,如果你還不想顯示warning資訊,通過「|」運算子可以達到:error_reporting= e_all & ~(e_notice | e_warning)。

error_reporting()函式設定錯誤報告

此函式設定的錯誤報告型別將覆蓋配置檔案php.ini檔案中的錯誤報告設定。此函式引數可以使用字串或者整數的形式。比如

error_reporting(3);

等同於error_reporting(」e_error | e_warning」);

如果不想報告任何錯誤,可以通過error_reporting(0)來實現。

當然作為在php**開發中,作為乙個php開發人員,還是應該將error_reporting設定為e_all。

其他通過phpinfo函式,我們可以看到display_errors這個選項,其也可以設定是否將錯誤資訊顯示給使用者。

錯誤資訊的處理思路

在設定好錯誤報告的型別和級別後,如何處理錯誤資訊,以提高使用者體驗?

在程式**方面,對於無關緊要的錯誤,可以通過@來抑制錯誤,重要的錯誤資訊可以通過自定義錯誤處理函式來實現,主要用到set_error_handler函式,php5版本還可以進行異常處理。

在前台展示方面,最好不要將原始錯誤資訊顯示給使用者,而應通過頁面跳轉,藝術化的文字資訊通知使用者。

以上就是php中錯誤報告設定和錯誤資訊處理的基本介紹。

PHP 設定錯誤報告

總結 php能夠在執行時動態設定是否顯示錯誤 顯示的錯誤級別。例子 不輸出錯誤報告 error reporting 0 輸出給定級別的錯誤 error reporting e error e warning e parse e notice 輸出除了e notice的他所有錯誤 error repo...

P29 自定義錯誤資訊和錯誤報告

這可以加錯誤資訊,但是想想這個返回正確的錯誤資訊,我們必須要改一下自定attribute裡面的 這裡先加乙個錯誤資訊。這裡原來的錯誤資訊是個字串的,然後這裡直接用erromessage的屬性,不用原來的自私的錯誤資訊的字串了。錯誤資訊 net core 就是用這個7807的標準。type的鏈結位址我...

PHP錯誤報告

級別常量 錯誤值錯誤報告描述 e error 致命的執行時錯誤 阻止指令碼執行 e warning 執行時警告 非致命性錯誤 e parse 從語法中解析錯誤 e notice 執行時注意訊息 可能是或可能不是乙個問題 e core error php啟動時初始化過程中的致命錯誤 e core wa...