PHP递归删除目录的方法


PHP #目录 #文件夹 #删除2014-04-21 09:11

删除一个空目录用rmdir() 函数即可搞定。但是要删除一个非空目录,则无法进行快速的删除,必须先将目录中文件删除,但是目录里可能还会有子目录,因此我们需要进行递归删除。

下面给大家提供一个函数参考。

<?php
function deletedir($dir){
      if(!handle=@opendir($dir)){     //检测要打开目录是否存在
               die("没有该目录");
      }
     while(false !==($file=readdir($handle))){
               if($file!=="."&&$file!==".."){       //排除当前目录与父级目录
                            $file=$dir .DIRECTORY_SEPARATOR. $file;
                            if(is_dir($file)){
                                  deletedir($file);
                            }else{
                                  if(@unlink($file)){
                                         echo "文件<b>$file</b>删除成功。<br>";
                                  }else{
                                          echo  "文件<b>$file</b>删除失败!<br>";
                                 }
                }
     }
    if(@rmdir($dir)){
           echo "目录<b>$dir</b>删除成功了。<br>\n";
    }else{
           echo "目录<b>$dir</b>删除失败!<br>\n";
  }
}
 
//测试程序
$dir="/var/www/test";
deletedir($dir);
关于PHP目录操作和文件操作 请查看 http://yige.org/p/78


相关文章

粤ICP备11097351号-1