用php检测rmdir错误


Detecting the rmdir error with php

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

rmdir不抛出Exception,因此您无法用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
    }
}

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

您也可以像处理异常一样尝试"捕获"错误。您可以指定一个自定义错误处理程序,但这似乎有点过头了。