首頁  >  文章  >  後端開發  >  開發模式與產品模式下的PHP報錯處理

開發模式與產品模式下的PHP報錯處理

不言
不言原創
2018-04-20 11:45:221552瀏覽

這篇文章透過實例程式碼介紹了開發模式與產品模式下的PHP報錯處理,非常不錯,具有參考借鑒價值,需要的朋友參考下吧

程式報錯總是在所難免,儘管我們書寫程式碼時已經格外小心。

在開發php程式時,我們希望遇到php報錯,可以第一時間展示給我們,以便於調試。當程式開發完成,成為正式產品時,我們希望將沒有預測到的報錯資訊記錄到錯誤日誌中,而不是將這些報錯資訊展示給用戶,因為用戶極有可能利用這些暴露出腳本路徑、資料庫資訊或其他的報錯資訊進行一些破壞性的駭客行動。

php的報錯處理方式是根據以下配置選項進行,這些配置可以在程式碼中聲明以設置,也可以在php.ini檔案中設定。如果不需要經常改變這些配置,還是建議在php.ini檔案中設置,以使你的程式碼更清爽簡潔。

# 是否打印错误信息到浏览器/命令行界面# 开发模式下建议开启,产品模式下强烈建议关闭ini_set('display_errors', 'On');# 是否记录错误信息到日志# 开发模式和产品模式下都建议开启ini_set('log_errors', 'On');# 指定错误信息日志文件,若开启了 log_errors 选项,记得指定日志文件位置# 要确保执行 php 脚本的系统用户拥有该文件的 write 权限,否则日志无法被写入ini_set('error_log', '/usr/local/php/errors.log');# 该选项用以设定错误报告的等级# 等同于 error_reporting(E_ALL) # 无论开发模式还是产品模式下都建议开到E_ALL(报告所有的错误信息)# 产品模式下也需要设置此选项,因为关闭了 display_errors 并开启了 log_errors# 所以浏览器/命令行界面不会因此暴露报错信息ini_set('error_reporting', E_ALL);

除此之外,php 也提供了開發者在程式碼中將自訂的錯誤訊息記錄到錯誤日誌檔案的內建函數:

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )
Sends an error message to the web server's error log or to a file.

必選參數是 message ,呼叫此函數會將 message 寫入 # php.ini 中定義的 error_log 檔案中。


以上是開發模式與產品模式下的PHP報錯處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn