3

rmdir() 显示一些警告,例如 dir 不存在或权限不允许。我如何捕捉失败的原因并做出反应?

4

2 回答 2

6

rmdir 不会抛出异常,因此您无法使用 try/catch 捕获它们。您可以做的是使用error_get_last函数来做您需要的事情。

尝试这样的事情:

if (!@rmdir('/root')) {
    $error = error_get_last();

    if (preg_match('/something/', $error['message'])) {
        // do something
    } elseif (preg_match('/somethingelse/', $error['message'])) {
        // do something
    }
}
于 2012-02-24T22:30:44.043 回答
1

您可以事先检查是否允许您执行某种操作,例如file_exists()检查is_ dir()目录是否存在,fileperms()或者只是is_ writable()检查您是否可以编写目录。

您还可以尝试像异常一样“捕获”错误。您可以指定一个自定义错误处理程序,但这似乎有点矫枉过正。

于 2012-02-24T22:22:03.837 回答