加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – error_get_last()的替代方案

发布时间:2020-12-13 22:33:18 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试调试在我大学的服务器上运行的php脚本.当前安装的php版本是5.1.6. 据我所知,error_get_last()仅适用于版本 = 5.2.我正在尝试回复失败的mkdir()调用的错误详细信息,我确信这是由其中一个目录的权限引起的.我希望错误消息能够解释这个问题,但我找不
我正在尝试调试在我大学的服务器上运行的php脚本.当前安装的php版本是5.1.6.

据我所知,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,$errNo,$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();

请注意评论#或用它做任何你想做的事:这部分仅仅是一个例子 – 我不确定你在5.1.6版本中得到了什么错误,所以你可以随意使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读