function rrmdir($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != “.” && $object != “..”) { if (filetype($dir.”/”.$object) == “dir”) rrmdir($dir.”/”.$object); else unlink($dir.”/”.$object); } } reset($objects); } }
rmdir
(PHP 4, PHP 5)
rmdir — 刪除目錄
Report a bug 說明
bool rmdir ( string $dirname )
嘗試刪除 dirname 所指定的目錄。 該目錄必須是空的,而且要有對應的權限。成功時回傳 TRUE, 或在失敗時回傳 FALSE.
Note: 自 PHP 5.0.0 起 rmdir() 也可用於某些 URL 封裝協定。請參閱Supported Protocols and Wrappers 的清單看看 rmdir() 支援哪些 URL 封裝協定。
Note: 在 PHP 5.0.0 中增加了 對上下文(Context)的支援。有關 上下文(Context) 的說明請參閱 Stream 函數。
Note: 當啟用 安全模式時, PHP 會在執行腳本時檢查被腳本操作的目錄是否與執行的腳本有相同的 UID(擁有者)。
參見 mkdir() 和 unlink()。
<?php function rrmdir($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object); } } reset($objects); rmdir($dir); } } ?>
<?php function deleteAll($directory, $empty = false) { if(substr($directory,-1) == "/") { $directory = substr($directory,0,-1); } if(!file_exists($directory) || !is_dir($directory)) { return false; } elseif(!is_readable($directory)) { return false; } else { $directoryHandle = opendir($directory); while ($contents = readdir($directoryHandle)) { if($contents != '.' && $contents != '..') { $path = $directory . "/" . $contents; if(is_dir($path)) { deleteAll($path); } else { unlink($path); } } } closedir($directoryHandle); if($empty == false) { if(!rmdir($directory)) { return false; } } return true; } } ?> [/code] A patch to previous script to make sure rights for deletion is set:
<?php //Delete folder function function deleteDirectory($dir) { if (!file_exists($dir)) return true; if (!is_dir($dir) || is_link($dir)) return unlink($dir); foreach (scandir($dir) as $item) { if ($item == '.' || $item == '..') continue; if (!deleteDirectory($dir . "/" . $item)) { chmod($dir . "/" . $item, 0777); if (!deleteDirectory($dir . "/" . $item)) return false; }; } return rmdir($dir); } ?>
更多rrmdir php中遞歸刪除目錄及目錄下的文件相關文章請關注PHP中文網!