在建立腳本和 web 應用程式時,錯誤處理是一個重要的部分。如果您的程式碼缺少錯誤偵測編碼,那麼程式看起來很不專業,也為安全風險敞開了大門。
基本的錯誤處理:使用die() 函數
第一個範例展示了一個開啟文字檔案的簡單腳本:(建議學習:PHP影片教學)
<?php $file=fopen("welcome.txt","r"); ?>
如果檔案不存在,您會得到類似這樣的錯誤:
Warning: fopen(welcome.txt) [function.fopen]: failed to open stream: No such file or directory in C:\webfolder\test.php on line 2
為了避免用戶獲得類似上面的錯誤訊息,我們在存取檔案之前檢測該檔案是否存在:
<?php if(!file_exists("welcome.txt")) { die("File not found"); } else { $file=fopen("welcome.txt","r"); } ?>
現在,假如檔案不存在,您會得到類似這樣的錯誤訊息:
File not found
比起之前的程式碼,上面的程式碼更有效,這是由於它採用了一個簡單的錯誤處理機制在錯誤之後終止了腳本。
不過,簡單地終止腳本並不總是恰當的方式。讓我們研究一下用於處理錯誤的備選的 PHP 函數。
建立自訂錯誤處理器
建立一個自訂的錯誤處理器非常簡單。我們很簡單地創建了一個專用函數,可以在 PHP 中發生錯誤時呼叫該函數。
此函數必須有能力處理至少兩個參數(error level 和error message),但是可以接受最多五個參數(可選的:file, line-number 以及error context):
error_function(error_level,error_message, error_file,error_line,error_context)
觸發錯誤
在腳本中使用者輸入資料的位置,當使用者的輸入無效時觸發錯誤的很有用的。在 PHP 中,這個任務由 trigger_error() 完成。
錯誤記錄
預設地,根據在 php.ini 中的 error_log 配置,PHP 會向伺服器的錯誤記錄系統或檔案傳送錯誤記錄。透過使用 error_log() 函數,您可以向指定的檔案或遠端目的地傳送錯誤記錄。
透過電子郵件向自己發送錯誤訊息,是一種獲得指定錯誤的通知的好方法。
以上是怎麼檢測php的錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!