在PHP中,如何递归删除所有非空文件夹?

Luk*_*lič -1 php directory rmdir

可能重复:
如何以递归方式删除PHP中的目录及其全部内容(文件+子目录)?

我需要递归删除非空的目录和子目录.我找不到任何有用的类或函数来解决这个问题.

提前感谢您的回答.

lor*_*o-s 20

从官方文档中的第一条评论.

http://php.net/manual/en/function.rmdir.php

<?php

 // When the directory is not empty:
 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);
   }
 }

?>
Run Code Online (Sandbox Code Playgroud)

编辑rmdir到rrmdir以从明显意图创建递归函数来纠正错字.

  • 当我试图发布我的答案时,该死的,愚蠢的SO想要人工验证的某些原因!虽然+1 :-). (2认同)