認識錯誤
E_ALL -> 所有的錯誤
E_ERROR -> 致命的運行錯誤
E_WARNING -> 警告級別的錯誤
E_NOTICE -> 提示級別的錯誤
E_STRICT -> 編碼標準化警告
E_CORE_ERROR -> php啓動時初始化過程中的錯誤(php沒有啓動)
E_CORE_WARNING -> php啓動時初始化過程中的警告
E_COMPILE_ERROR -> 編譯時的致命錯誤
E_COMPILE_WARNING -> 編譯時的警告錯誤
E_USER_ERROR -> 用戶自定義的致命錯誤
E_USER_WARNING -> 用戶自定義的警告錯誤
E_USER_NOTICE -> 用戶自定義的提示
錯誤的級別
Error: 致命錯誤,會終止程序的運行
Warning: 警告級別的錯誤,不會終止程序的運行
Notice: 提示 提醒(算不上錯誤)
防止錯誤
Ø 讓不該看到的人看不到錯誤
n 使用錯誤抑制符@,只能屏蔽單行錯誤而且效率低。
n 修改php.ini 配置文件中的display_errors選項,設置on顯示錯誤,設置off不顯示錯誤
n 修改php配置文件中error_reporting選項,可以定義任意類型的錯誤輸出或者不輸出
E_ALL &(並且) ~(除了某一個)
E_ALL &~E_NOTICE 報所有的錯誤但是除了E_NOTICE
n 使用error_reporting() 函數,可以和配置文件中的error_reporting選項實現相同效果,設置的值也是一樣
Ø 讓該看到的人看到錯誤(製作網站的相關人員)
u 第一步:關閉配置文件中display_errors 設置爲off
u 第二步:設置存儲錯誤的類型,設置配置文件中error_reporting選項,指定需要存儲的錯誤類型
u 第三步:開啓錯誤日誌記錄開關,設置配置文件中的log_errors =On
u 第四步:設置值錯誤日誌記錄的地點
error_log = syslog 記錄錯誤到系統日誌中(打開去掉分號)
l 系統日誌查找方式-》開始-》控制面板-》管理工具-》事件查看器-》windows日誌-》應用程序
l 從控制面板中查看錯誤看着比較難分辨,這是我們可以自定義寫入指定的文件中(error_log = syslog前面的分號在加上)
error_log = “寫入錯誤文件的路徑”
l 注意:error_log不會幫我們自定義創建目錄,只能幫我們自動創建文件。
注意:要知道一切通過配置文件修改的東西,都可以通過函數來修改。
自定義處理錯誤的方式
Ø set_error_handler(); 設置一個用戶定義的錯誤處理函數
@param1:傳入一個回調函數
@param2:可選參數,設置錯誤的類型
注意:用戶自定義的回調函數需要接受四個參數。
錯誤號
錯誤內容
錯誤文件
當前錯誤行
Ø file_put_contents() 將內容寫入指定的文件中
@param1:要寫入文件的地址
@param2:要寫入的內容
@param3:可選參數。設置爲FILE_APPEND追加數據而不覆蓋
返回值:返回寫入的字節數
注意:該函數默認以替換的方式寫入文件。
如果文件存在,則清空文件後寫入。如果文件不存在,創建文件後寫入 文件。