我想獲取警告和錯誤消息到php $變量,所以我將它們保存到我的數據庫。PHP會收到警告和錯誤消息?
例如,當存在什麼樣的錯誤,報警或類似:
Parse error: syntax error, unexpected T_VARIABLE in /example.php(136) on line 9
Warning: [...]
我想,讓他們到變量$ ERROR_CODE
如何做到這一點?
我想獲取警告和錯誤消息到php $變量,所以我將它們保存到我的數據庫。PHP會收到警告和錯誤消息?
例如,當存在什麼樣的錯誤,報警或類似:
Parse error: syntax error, unexpected T_VARIABLE in /example.php(136) on line 9
Warning: [...]
我想,讓他們到變量$ ERROR_CODE
如何做到這一點?
對於剛剛登陸他們的簡單情況:
set_error_handler(function($errno, $errstr, $errfile, $errline) use ($db) {
// log in database using $db->query()
});
而不是僅僅記錄他們到你的數據庫(有可能你會不會看他們一會後)你也可以讓那些警告,通知等產生異常:
function exception_error_handler($errno, $errstr, $errfile, $errline)
{
if (error_reporting()) { // skip errors that were muffled
throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
}
set_error_handler("exception_error_handler");
例外無線會有更嚴重的副作用,所以你應該有一個exception handler來防止未捕獲的異常導致死亡的白頁。
設置一個用戶函數(error_handler)的腳本來處理錯誤。
該功能可用於在應用程序運行時定義你自己的錯誤處理 方式,例如在你需要做 清理的數據/文件時嚴重錯誤發生時,或者當你需要 到觸發在某些情況下出錯(使用trigger_error())。
有一個名爲$ php_errormsg的變量,它獲取以前的錯誤消息。點擊這裏獲取更多信息 - http://php.net/manual/en/reserved.variables.phperrormsg.php
我使用error_get_last();
,直到我找到一個更好的解決方案
$lastError = error_get_last();
echo $lastError ? "Error: ".$lastError["message"]." on line ".$lastError["line"] : "";
// Save to db
這隻會給你最後的錯誤,並不是所有的錯誤。 – 2013-02-23 04:38:29
嘗試從'error_log'文件的讀取,並在數據庫中寫入。 – Achrome 2013-02-23 03:49:14
如果你想將它保存到一個變量中,你應該看看這個:http://us3.php.net/manual/en/reserved.variables.phperrormsg.php – 2013-02-23 03:50:03
你不能捕捉到分析錯誤,除非他們'重新寫入你包含或需要的腳本。 – 2013-02-23 03:57:16