開發(fā)模式與產(chǎn)品模式下的PHP報錯應該如何處理-創(chuàng)新互聯(lián)

程序報錯總是在所難免,盡管我們書寫代碼時已經(jīng)格外小心。那么開發(fā)模式與產(chǎn)品模式下的PHP報錯應該如何處理?相信有很多人都不太了解,今天小編為了讓大家更加了解,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。

創(chuàng)新互聯(lián)建站致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)建站為不同類型的客戶提供良好的互聯(lián)網(wǎng)應用定制及解決方案,創(chuàng)新互聯(lián)建站核心團隊十年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗,為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。

在開發(fā)php程序時,我們希望遇到php報錯,可以第一時間展示給我們,以便于調(diào)試。當程序開發(fā)完成,成為正式產(chǎn)品時,我們希望將沒有預測到的報錯信息記錄到錯誤日志中,而不是將這些報錯信息展示給用戶,因為用戶極有可能利用這些暴露出腳本路徑、數(shù)據(jù)庫信息或其他的報錯信息進行一些破壞性的黑客行動。

PHP 的錯誤處理

php腳本在執(zhí)行過程中遇到錯誤將以報錯的形式處理,有些錯誤在報錯之后會終止腳本繼續(xù)執(zhí)行,而有些不會,具體請參閱手冊。

php的報錯處理方式根據(jù)以下配置選項進行,這些配置可以在代碼中聲明以設(shè)置,也可以在php.ini文件中設(shè)置。如果不需要經(jīng)常改動這些配置,還是建議在php.ini文件中設(shè)置,以使你的代碼更清爽簡潔。

# 是否打印錯誤信息到瀏覽器/命令行界面
# 開發(fā)模式下建議開啟,產(chǎn)品模式下強烈建議關(guān)閉
ini_set('display_errors', 'On');
# 是否記錄錯誤信息到日志
# 開發(fā)模式和產(chǎn)品模式下都建議開啟
ini_set('log_errors', 'On');
# 指定錯誤信息日志文件,若開啟了 log_errors 選項,記得指定日志文件位置
# 要確保執(zhí)行 php 腳本的系統(tǒng)用戶擁有該文件的 write 權(quán)限,否則日志無法被寫入
ini_set('error_log', '/usr/local/php/errors.log');
# 該選項用以設(shè)定錯誤報告的等級
# 等同于 error_reporting(E_ALL) 
# 無論開發(fā)模式還是產(chǎn)品模式下都建議開到E_ALL(報告所有的錯誤信息)
# 產(chǎn)品模式下也需要設(shè)置此選項,因為關(guān)閉了 display_errors 并開啟了 log_errors
# 所以瀏覽器/命令行界面不會因此暴露報錯信息
ini_set('error_reporting', E_ALL);

除此之外,php 還給開發(fā)者提供了在代碼中將自定義的錯誤信息記錄到錯誤日志文件的內(nèi)置函數(shù):

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

必選參數(shù)是 message ,調(diào)用此函數(shù)會將 message 寫入 php.ini 中定義的 error_log 文件中。

用戶自定義的錯誤處理

另外,用戶可以通過函數(shù):

mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )

以自定義的方式來處理腳本運行時出現(xiàn)的錯誤,如果用戶注冊了 error_handler 并指定了 error_types ,那么當發(fā)生這些 error_types 的錯誤時,將繞過 php的標準錯誤處理程序

(也就是說既不會輸出錯誤信息,也不會記錄錯誤信息日志),而是執(zhí)行 error_handler 中的處理程序。

關(guān)于開發(fā)模式與產(chǎn)品模式下的PHP報錯應該如何處理就分享到這里了,希望以上內(nèi)容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前文章:開發(fā)模式與產(chǎn)品模式下的PHP報錯應該如何處理-創(chuàng)新互聯(lián)
鏈接分享:http://muchs.cn/article36/djecsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、關(guān)鍵詞優(yōu)化、小程序開發(fā)、微信小程序企業(yè)網(wǎng)站制作、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)