我試圖調試在我的大學服務器上運行的php腳本。當前安裝的php版本是5.1.6
。error_get_last()的替代方法
這是我的理解error_get_last()
將只適用於版本>= 5.2
。我試圖迴應錯誤mkdir()
調用的錯誤詳細信息,我確定這是由涉及的目錄之一的權限引起的。我希望這個錯誤信息能夠揭示這件事,但我找不到一種方法來查看錯誤細節,我認爲我甚至不能訪問其他php錯誤日誌來檢查。
我的其他選擇是什麼?
我試圖調試在我的大學服務器上運行的php腳本。當前安裝的php版本是5.1.6
。error_get_last()的替代方法
這是我的理解error_get_last()
將只適用於版本>= 5.2
。我試圖迴應錯誤mkdir()
調用的錯誤詳細信息,我確定這是由涉及的目錄之一的權限引起的。我希望這個錯誤信息能夠揭示這件事,但我找不到一種方法來查看錯誤細節,我認爲我甚至不能訪問其他php錯誤日誌來檢查。
我的其他選擇是什麼?
你可以試着讓自己的錯誤處理:
# temporary error handler
function tempErrorHandler($errNo, $errStr, $errFile, $errLine, array $errContext) {
# continue to practice @ suppression
if (0 === error_reporting()) {
return false;
}
# throw it
throw new ErrorException($errStr, 0, $errNo, $errFile, $errLine);
}
# make this the error handler for now..
set_error_handler('tempErrorHandler');
# use a try..catch
try {
mkdir('../directory with some permission problem../../');
}
catch (ErrorException $e) {
# echo it out
echo $e->getMessage();
# or do whatever you want with it: this part is just an EXAMPLE
$errMsg = $e->getMessage();
$isPermissionDenied = strpos($errMsg, 'Permission denied');
if ($isPermissionDenied) {
# do something
}
}
# revert to previous error handler
restore_error_handler();
請大家評論的音符# or do whatever you want with it: this part is just an EXAMPLE
--I'm不知道你會得到什麼錯誤在5.1.6
版本,所以你可以玩的它..
它看起來像你可以通過$ php_errormsg保留變量訪問錯誤範圍內的錯誤消息返回到php4。如果您未使用用戶定義的錯誤消息處理程序(請參閱http://php.net/manual/en/reserved.variables.phperrormsg.php)以獲取更多詳細信息。
完美的解決方案。 – Fuzzy 2012-10-10 15:56:28