在程序調(diào)試時如果在本地我們出現(xiàn)500錯誤可以直接打開php.ini的錯誤來看到哪里錯了,但在服務器中我們是不能這樣做的,這樣很容易讓人感覺網(wǎng)站不正規(guī)的同時也可能給其它人看到你網(wǎng)站W(wǎng)EB路徑及相關安全數(shù)據(jù)了,那要如何處理500錯誤呢,下面我們一看一個方法。
通常程序發(fā)生致命錯誤的時候頁面空白,想獲取錯誤信息也不難!主要是利用兩個函數(shù):error_get_last() 獲取最后一次發(fā)生錯誤信息:結構如下:
register_shutdown_function()在腳本停止執(zhí)行時注冊一個回調(diào)函數(shù),有了這兩個函數(shù)就可以監(jiān)控致命錯誤了,代碼如下:
順序附本地服務器測試方法,下面來說說顯示PHP錯誤提示消息的三個方法。
一:php.ini配置
php.ini配置中與此相關的有兩個配置變量,下面是這兩個變量及其默認值,代碼如下:
display_errors = Off
error_reporting = E_ALL & ~E_NOTICE
display_errors 變量的目的很明顯 -- 它告訴PHP是否顯示錯誤,默認值是 Off,現(xiàn)在我們的目的是顯示錯誤提示,那么:display_errors = On
E_ALL,這個設置會顯示從不良編碼實踐到無害提示到出錯的所有信息,E_ALL 對于開發(fā)過程來說有點太細,因為它連變量未初始化也顯示提示,而這一點正是PHP“高級”的一個特征,幸好,error_reporting的默認值是“E_ALL & ~E_NOTICE”,這樣就只看到錯誤和不良編碼了,對程序無不利的提示則不會顯示。
修改php.ini后需要重新啟動Apache,這樣才可以在apache中生效,當然你如果只在命令行下測試程序,是不需要這一步的。
配置php程序中,代碼如下: