我正在尝试调试在我大学的服务器上运行的php脚本。安装的当前版本的PHP是5.1.6
。
据我了解,error_get_last()
仅适用于版本>= 5.2
。我正在尝试回复失败的mkdir()
调用的错误详细信息,我确信这是由其中一个目录的权限引起的。我希望错误消息能够解释这个问题,但是我找不到查看错误详细信息的方法,我不认为我甚至可以访问其他php错误日志来检查那里。< / p>
我的其他选择是什么?
答案 0 :(得分:1)
您可以尝试制作自己的错误处理程序:
# 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
- 我不确定您在版本5.1.6
上遇到了什么错误,因此您可以随意使用它。
答案 1 :(得分:0)
看起来您可以使用$ php_errormsg保留变量将错误范围内的错误消息返回到php4。如果您没有使用用户定义的错误消息处理程序(请参阅http://php.net/manual/en/reserved.variables.phperrormsg.php)以获取更多详细信息。