PHP的錯誤處理

2022-08-21 03:42:12 字數 2005 閱讀 8678

一、php的錯誤分類

1.語法錯誤

語法錯誤不會執行php指令碼檔案中的任意**

2.執行時錯誤

在**執行的過程當中發生的錯誤

3.邏輯錯誤

不會發生語法錯誤,不會發生執行時錯誤,會顯示錯誤的結果

通常情況下,這種錯誤最難排錯

二、錯誤報錯級別

級別常量      錯誤值      錯誤報告描述

e_error      1         致命的執行時錯誤(阻止指令碼執行)

e_warning      2        執行時警告(非致命性錯誤)

e_parse        4        從語法中解析錯誤

e_notice      8        執行時注意訊息(可能是或可能不是乙個問題)

e_core_error  16        php啟動時初始化過程中的致命錯誤

e_core_warning  32       php啟動時初始化過程中的警告(非致命性)

e_compile_error   64       編譯時致命錯誤

e_compile_warning  128        編譯時警告(非致命性)

e_user_error    256        使用者自定義的致命錯誤

e_user_warning   512       使用者自定義的警告

e_user_notice        1024       使用者自定義的提醒(經常是bug)

e_strict        2048      編碼標準化警告(建議如何修改以向前相容)

e_all         6143      所有的錯誤、警告和注意資訊

三、更改錯誤報告級別

1.php的配置檔案php.ini中:

display_errors=on/off (是否顯示錯誤報告)

error_reporting=e_all (更改要顯示的錯誤報告級別)

2.在**中修改:

ini_set('display_errors','off');

error_reporting(0); / error_reporting(e_all);

四、使用者自定義錯誤報告的處理方式

①trigger_error('提示資訊',e_user_error/warning/notice);

②set_error_handler(**函式):

**函式所需的引數:

errorno:錯誤報告級別的常量值

errorstr:錯誤資訊

errorfile:錯誤發生的檔案

errorline:錯誤發生的行號

注意:當前檔案每發生一次錯誤,都會呼叫一次該**函式

例:set_error_handler('myerror');

function myerror($errorno,$errorstr,$errorfile,$errorline)

$str.=':'.$errorstr

;

$str.="

發生在檔案:".$errorfile."的第".$errorline."行";

echo "

"; }

五、儲存錯誤日誌到指定檔案中

**中設定:

ini_set('error_reporting','e_all');  //不可關閉錯誤報告級別,否則系統的錯誤報告不會寫入日誌檔案

ini_set('display_errors','off');  //關閉以避免系統錯誤報告在介面的顯示

ini_set('log_errors','on');  //開啟外部儲存錯誤資訊

ini_set('error_log','d:/error.log');  //設定儲存的位置

//**中使用函式error_log()即可將錯誤資訊寫入到d:/error.log檔案中

//也可在set_error_handler()的**函式中使用函式error_log()

error_log('自定義錯誤資訊');

例:

PHP 錯誤處理

在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...

PHP 錯誤處理

在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...

PHP 錯誤處理

在 php 中,預設的錯誤處理很簡單。一條錯誤訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...