rmdir()显示一些警告,如dir不存在或权限不允许。我如何获得失败的原因并对其作出反应?使用php检测rmdir错误
回答
rmdir不会抛出异常,所以你不能用try/catch来捕捉它们。你可以做的是使用error_get_last函数来做你需要的。
尝试这样:
if ([email protected]('/root')) {
$error = error_get_last();
if (preg_match('/something/', $error['message'])) {
// do something
} elseif (preg_match('/somethingelse/', $error['message'])) {
// do something
}
}
我以前没有用过,感谢这个例子! – Poe 2012-02-24 22:40:00
你可以把try-catch
块周围:http://php.net/manual/en/language.exceptions.php
try {
rmdir($nonExistingDir);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
但正确提到的评议,这仅仅是警告,所以你需要在一个单独的答案中概述的方法事先检查。
AFIK,这些都不例外,只显示警告和错误,但执行仍在继续。 – drew010 2012-02-24 22:22:57
刚刚注意到,当我点击发送 – mindandmedia 2012-02-24 22:23:28
mkdir生成php警告,而不是例外。你不能发现错误,警告或通知。您可以另一方面定义一个自定义错误处理函数,将错误/警告转换为异常。但有一些限制。 – Basti 2012-02-24 22:24:22
,如果你被允许做某种动作像file_exists()
和is_ dir()
,以检查是否存在一个目录和fileperms()
或只是is_ writable()
检查,如果你可以写一个目录,您可以事先检查。
你也可以尝试像例外一样“捕捉”错误。你可以指定一个自定义错误处理程序,但这似乎有点矫枉过正。
另外,检查'empty(scandir($ dir))'会有帮助,因为'rmdir'不能删除非空目录。我通常只使用'\'rm -rf $ dir \'' – Roberto 2012-02-24 22:29:22
- 1. 使用SimpleXMLElement检测错误?
- 2. 检测错误错误D1
- 3. 使用PHPUnit检测任何PHP错误/警告/异常
- 4. 使用PRISM4检测验证错误
- 5. 使用phpunit测试PHP解析错误
- 6. 检测MSMQ错误
- 7. 2DCollider检测错误
- 8. R:错误检测
- 9. 堆错误检测
- 10. PHP - rmdir(权限被拒绝)
- 11. 错误检查和开放使用PHP
- 12. 使用PHP检测FastCGI SAPI
- 13. 错误检查PHP
- 14. 错误使用PHP
- 15. 错误使用PHP
- 16. 错误使用PHP
- 17. 如何检测stream_copy_to_stream错误?
- 18. 无法检测SQL错误
- 19. 如何检测API错误?
- 20. VB.Net当检测到错误
- 21. 检测utf8编码错误
- 22. 检测WPF验证错误
- 23. glibc检测到的错误
- 24. Python硒检测错误?
- 25. 错误NSStringEncoding 0x0000值检测
- 26. 错误检测木偶/ TheForeman
- 27. 在PHP中使用rmdir删除文件夹
- 28. 错误而测试Tensorflow对象检测
- 29. 在使用PHP的MySQL中的多个查询中的错误检测
- 30. PHP JSON值检索错误
如果你有PHP 5.2.0或更高版本,请参阅[error_get_last()](http://php.net/error_get_last) – drew010 2012-02-24 22:22:11