標籤:wamp line notice 輸出 建議 記錄 port and logs
一、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_ERROR5、自訂錯誤處理函數: ①聲明一個錯誤處理函數 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中錯誤處理