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()
来检查是否可以编写目录。
您也可以像处理异常一样尝试"捕获"错误。您可以指定一个自定义错误处理程序,但这似乎有点过头了。