猿问

如何递归删除PHP中的目录及其全部内容(文件+子目录)?

如何递归删除PHP中的目录及其全部内容(文件+子目录)?

如何删除PHP中的目录及其全部内容(文件和子目录)?


汪汪一只猫
浏览 386回答 3
3回答

幕布斯6054654

您试过手册页中的第一个注意事项吗?rmdir? function rrmdir($dir) {     if (is_dir($dir)) {       $objects = scandir($dir);       foreach ($objects as $object) {         if ($object != "." && $object != "..") {           if (is_dir($dir."/".$object))            rrmdir($dir."/".$object);          else            unlink($dir."/".$object);         }       }      rmdir($dir);     }   }

婷婷同学_

建基Pixel开发者的评论,使用SPL的代码片段可能如下所示:$files = new RecursiveIteratorIterator(     new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),     RecursiveIteratorIterator::CHILD_FIRST);foreach ($files as $fileinfo) {     $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink');     $todo($fileinfo->getRealPath());}rmdir($dir);注:确实如此。不正确检查并使用PHP5.3.0中的FilesystemIterator引入的SkipDOTS标志。当然,$todo可能是if/else..重要的是CHILD_FIRST用于首先在其父(文件夹)之前遍历子(文件)。

杨__羊羊

删除路径中的所有文件和文件夹。function recurseRmdir($dir) {   $files = array_diff(scandir($dir), array('.','..'));   foreach ($files as $file) {     (is_dir("$dir/$file")) ? recurseRmdir("$dir/$file") : unlink("$dir/$file");   }   return rmdir($dir);}
随时随地看视频慕课网APP
我要回答