1. 程式人生 > >PHP中錯誤處理

PHP中錯誤處理

mage 一個 系統 cti 出錯 錯誤日誌 如果 war 聲明

一、PHP中的錯誤處理

1、PHP中的錯誤級別

技術分享

2、調整PHP錯誤報告級別   >>>PHP中,調整錯誤報告級別的方式有兩種:   ①修改php.ini文件的配置項。    a.會導致在當前服務器環境下的所有PHP文件都受其影響    b.如果代碼要更換服務器,會導致配置文件全部失效,需重新配置    所以,實際開發過程中,並不推薦這種修改方式   ②在代碼中,使用ini_set()函數,動態的修改php.ini文件的配置項   >>> php.ini中的兩個重要配置項 ①display_errors:開啟或關閉所有的錯誤級別    可選值:1/On 表示開啟錯誤報告功能 0/Off 表示關閉所有報告    默認是開啟,而且強烈建議保持開啟
 ini_set
("display_errors","0"); //關閉所有錯誤報告功能
  ②error_reporting:設置那些錯誤,可以進行報告;    有兩個函數可以設置ini_set(); error_reporting();
ini_set("error_reporting","E_ALL");  // 報告全部錯誤
error_reporting("error_reporting","E_ALL & ~E_NOTICE"); // 不報告註意NOTICE級別,其他錯誤正常報告
3、使用錯誤日誌來記錄出現的錯誤   ①使用日誌文件記錄:    使用error_log();函數,將錯誤信息輸出到日誌文件中;默認的日誌文件在wamp中的log文件夾下,php_error.log文件   >>>自定義日誌文件打印:
ini_set
("error_log","E:/test.txt"); //設置日誌文件地址 error_log("出錯啦!!"); //打印一句錯誤信息 error_log("又出錯啦!",3,"E:/test.txt"); //直接將錯誤打印到指定文件中

  ②寫進windows系統日誌
ini_set("error_log","syslog"); //設置日誌記錄到系統日誌
error_log("系統日誌出錯"); //使用日誌報錯時,將自動進入系統日誌
4、trigger_error():自定義一個錯誤!會像系統的錯誤一樣,產生報錯。   參數a 錯誤的信息內容   參數b 錯誤的級別。E_USER_WARNING E_USER_ERROR 5、自定義錯誤處理函數:   ①聲明一個錯誤處理函數 function func()   ②使用set_error_handler("func"); 設置當文件出現錯誤時,不再使用系統自帶的錯誤提示功能,而是調用我們自定義的函數   >>> set_error_handler在觸發函數的時候,會默認向函數發送四個參數,分別是:錯誤的級別、錯誤的信息、發生錯誤的文件、錯誤所在的行號 所以可以在聲明函數時,接收錯誤信息,具體處理。
$errMessage
= ""; ini_set("log_errors","On"); function errorHandler($type,$message,$file,$line){ global $errMessage; switch ($type) { case E_NOTICE: $errMessage .= "發生了沒有什麽卵用的小bug,就不用處理了<br><br>"; break; case E_WARNING: $errMessage .= "出錯啦!!!"; $errMessage .= "錯誤類型是:{$type}"; $errMessage .= "錯誤信息是:{$message}"; $errMessage .= "錯誤發生的文件是:{$file}"; $errMessage .= "錯誤發生的行號是:{$line}"; $errMessage .= "<br><br>"; break; case E_ERROR: echo "<script>"; echo "location.href=‘../test.php‘"; echo "</script>"; break; default: echo "<script>"; echo "location.href=‘../test.php‘"; echo "</script>"; break; } } set_error_handler("errorHandler");

PHP中錯誤處理