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