如何捕獲php致命錯誤?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
專注于為中小企業(yè)提供網(wǎng)站建設、網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)千陽免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
php獲取致命錯誤的方法:首先開啟“ob_start”,并建立一個“tmp.php”文件;然后在“short.php”文件中寫一些錯誤代碼;最后訪問“tmp.php”文件即可。
php捕獲致命錯誤
記錄php錯誤日志可以有力的幫我們查找問題、修復bug,php提供了set_error_handler、set_exception_handler來捕獲錯誤和異常。但是set_error_handler并不能捕獲E_ERROR、 E_PARSE、 E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING、E_STRICT等錯誤。一般來講,如果是致命錯誤,會導致php解釋器都無法編譯通過,自然不能捕獲這些錯誤,但是,我們可以通過一些方法來巧妙的得到這些錯誤信息。
首先先建立一個tmp.php
<?php //error_reporting(0); ob_start(); set_error_handler('errorHandler'); register_shutdown_function( 'close' ); function 大專欄 php捕獲致命錯誤class="hljs-title">close(){ ob_end_clean(); $error = error_get_last(); echo '<pre>'; print_r($error); } require 'short.php';
然后在short.php中寫入一些錯誤代碼,如
echo $a//故意不加分號
然后訪問tmp.php,就會發(fā)現(xiàn),頁面沒有顯示php自身的錯誤提示,而是執(zhí)行了close方法。以上代碼關鍵幾點。
第一、開啟ob_start
第二:使用register_shutdown_function注冊函數(shù)
第三:使用error_get_last函數(shù)獲取錯誤信息
第四:php解析的第一個文件不能出現(xiàn)致命錯誤,否則無法捕獲。所以也推薦大家搭建自己的框架或者選擇框架時,最好使用單一入口方式
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
新聞名稱:如何捕獲php致命錯誤
轉(zhuǎn)載來源:http://jinyejixie.com/article48/gdjsep.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、網(wǎng)站制作、電子商務、品牌網(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)