PHP的錯誤報告error reporting

2021-08-26 20:57:53 字數 2026 閱讀 5912

設定錯誤訊息回報的等級。

語法:int error_reporting(int [level]);

傳回值:整數

函式種類:

php系統功能

內容說明

本函式用來設定錯誤訊息回報的等級,引數 level 是乙個整數的位元遮罩 (bitmask),見下表。

value

constant

1e_error

2e_warning

4e_parse

8e_notice

16e_core_error

32e_core_warning

64e_compile_error

128e_compile_warning

256e_user_error

512e_user_warning

1024

e_user_notice

2047

e_all

2048

e_strict

php 的錯誤報告

php.ini 檔案中有許多配置設定。您應當已經設定好自己的 php.ini 檔案並把它放在合適的目錄中,就像在 linux 上安裝 php 和 apache 2 的文件說明中所示的那樣(請參閱 

參考資料

)。在除錯 php 應用程式時,應當知道兩個配置變數。下面是這兩個變數及其預設值:

display_errors = off 

error_reporting = e_all

通過在 php.ini 檔案中搜尋它們,可以發現這兩個變數當前的預設值。display_errors 變數的目的很明顯 —— 它告訴 php 是否顯示錯誤。預設值是 off。但是,要讓開發過程更加輕鬆,請把這個值設為 on:

display_errors = on

error_reporting 變數的預設值是 e_all。這個設定會顯示從不良編碼實踐到無害提示到出錯的所有資訊。e_all 對於開發過程來 說有點太細,因為它在螢幕上為一些小事(例如變數未初始化)也顯示提示,會搞糟瀏覽器的輸出。我只想看到錯誤和不良編碼實踐,但是不想看到無害的提示。所 以,請用以下值代替 error_reporting 的預設值:

error_reporting = e_all & ~e_notice

重新啟動 apache,就全部設定好了。接下來,將

學習如何在 apache 上做同樣的事。

伺服器上的錯誤報告

依賴於 apache 正在做的工作,在 php 中開啟錯誤報告可能沒法工作,因為在計算機上可能有多個 php 版本。有時很難區 分 apache 正在使用哪個 php 版本,因為 apache 只能檢視乙個 php.ini 檔案。不知道 apache 正在使用哪 個 php.ini 檔案配置自己是乙個安全問題。但是,有一種方法可以在 apache 中配置 php 變數,從而保證設定了正確的出錯級別。

而且,最好知道如何在伺服器端設定這些配置變數,以否決或搶占 php.ini 檔案,從而提供更高階別的安全性。 

在配置

apache時,應該已經接觸過 /conf/httpd.conf 中 http.conf 檔案中的基本配置。

要做在 php.ini 檔案中已經做過的事,請把下列各行新增到 httpd.conf,覆蓋任何 php.ini 檔案:

php_flag  display_errors        on 

php_value error_reporting 2039

這會覆蓋在 php.ini 檔案中為 display_errors 已經設定的標誌,以及 error_reporting 的值。值 2039 代表 e_all & ~e_notice。如果願意採用 e_all,請把值設為 2047。同樣,還是要重啟 apache。

接下來,要在伺服器上測試錯誤報告。

PHP錯誤報告

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

PHP 設定錯誤報告

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

PHP錯誤報告級別

error reporting e all e notice 錯誤報告級別是位字段的疊加,推薦使用 e all e strict 1 e error 致命的執行時錯誤 2 e warning 執行時警告 非致命性錯誤 4 e parse 編譯時解析錯誤 8 e notice 執行時提醒 經常是 bu...