php提供了錯誤處理和日誌記錄的功能. 這些函式允許你定義自己的錯誤處理規則,以及修改錯誤記錄的方式. 這樣,你就可以根據自己的需要,來更改和加強錯誤輸出資訊以滿足實際需要.
通過日誌記錄功能,你可以將資訊直接傳送到其他日誌伺服器,或者傳送到指定的電子郵箱(或者通過郵件閘道器傳送),或者傳送到作業系統日誌等,從而可以有選擇的記錄和監視你的應用程式和**的最重要的部分。
錯誤報告功能允許你自定義錯誤反饋的級別和型別,可以是簡單的提示資訊或者使用自定義的函式進行處理並返回資訊.
開發階段:
開發時輸出所有的錯誤報告,有利於我們進行程式除錯
執行階段:
我們不要讓程式輸出任何一種錯誤報告(不能讓使用者看到(包括懂技術, 不懂技術的人))
將錯誤報告寫入日誌中
一、指定錯誤報告 error_reporting = e_ll
二、關閉錯誤輸出 display_errors = off
三、開啟錯誤日誌功能 log_errors = on
1. 預設如果不指定錯誤日誌位置,則預設寫web伺服器的日誌中
2. 為error_log選項指定 乙個檔名(可寫)
3. 寫入到作業系統日誌中error_log=syslog
語法錯誤
一般開發工具都又提示
$a=10
echo $a;
執行錯誤
只有程式執行後,才發生的錯誤
include 'function.php';
邏輯錯誤$a=20;
$b=10;
if($a==$b)else
e_notice (integer)
需要注意的錯誤,不會影響後面**的執行
e_warning (integer)
警告錯誤,稍微嚴重的錯誤,也不會影響後面**的
e_parse (integer)
編譯時語法解析錯誤。解析錯誤僅僅由分析器產生。
e_error (integer)
致命錯誤,是非常嚴重的錯誤,會影響後面**的執行
e_core_error (integer)
php初始化啟動過程中發生的致命錯誤。該錯誤類似 e_error,但是是由php引擎核心產生的。
die() 函式
如果檔案不存在,您會得到錯誤,
這個時候就可以使用die() 函式
<?phpif(
!file_exists
("welcome.txt"))
else
?>
通過如下設定可以關閉錯誤提示
display_errors = off
在開發階段,我們需要開啟錯誤提示,但是專案上線後,要關閉錯誤提示
即使開啟錯誤提示,仍然可以設定哪些錯誤級別在頁面展示,哪些錯誤級別展示
兩種設定方式
- 修改配置檔案 pho.ini,此檔案已經修改,會影響到所有的php檔案
- 在單獨的php檔案中修改
##### 1.4 錯誤日誌
錯誤資訊除了在頁面展示之外,還可以寫道檔案中。為什麼要提供錯誤日誌檔案呢?
因為專案一旦上線,我們是不關閉錯誤提示,但是可以將執行中的錯誤全部寫道日誌檔案中,開發人員可以根據檔案記錄排查錯誤
PHP 錯誤處理
在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...
PHP 錯誤處理
在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...
PHP 錯誤處理
在 php 中,預設的錯誤處理很簡單。一條錯誤訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...