rmdir()显示一些警告,例如dir不存在或权限不允许。我怎样才能找出失败的原因并做出反应?
答案 0 :(得分:5)
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
}
}
答案 1 :(得分:0)
您可以事先检查是否允许您执行某种操作,例如file_exists()
和is_ dir()
,以检查目录是否存在以及fileperms()
或仅is_ writable()
来检查如果你可以写一个目录。
您也可以像异常一样尝试“捕获”错误。你可以指定一个自定义错误处理程序,但这似乎有点矫枉过正。