rmdir() 显示一些警告,例如 dir 不存在或权限不允许。我如何捕捉失败的原因并做出反应?
问问题
2929 次
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 回答