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解釋器都無法編譯通過,自然不能捕獲這些錯誤,但是,我們可以透過一些方法來巧妙的得到這些錯誤訊息。
推薦:《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 class="brush:php;toolbar:false">'; print_r($error); } require 'short.php';
然後在short.php中寫入一些錯誤程式碼,如
echo $a//故意不加分號
然後存取tmp.php,就會發現,頁面沒有顯示php本身的錯誤提示,而是執行了close方法。以上程式碼關鍵幾點。
第一、開啟ob_start
第二:使用register_shutdown_function註冊函數
第三:使用error_get_last函數取得錯誤訊息
#第四:php解析的第一個檔案不能出現致命錯誤,否則無法捕獲。所以也推薦大家搭建自己的框架或選擇框架時,最好使用單一入口方式
以上是php如何捕獲致命錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!