php递归删除目录的例子

发布时间:2020-05-27编辑:脚本学堂
用php删除一个空目录相当简单了,用rmdir() 函数即可搞定。
但是要删除一个非空目录,则无法进行快速的删除,必须先将目录中文件删除,但是目录里可能还会有子目录,因此我们需要进行递归删除。

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

下面是一个递归删除目录的例子。
文件名:del_files.php
 

复制代码 代码如下:
<?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);
?>

在 /var/www/test 文件夹下创建一些文件夹和文件。
shell> touch  aaa
shell> touch  bbb
shell> touch  ccc
shell> touch  eee
shell> touch  ffff
shell> mkdir   111
shell> mkdir   222
shell> mkdir   333
分别再在111,222,333  文件夹下创建一些文件,然后给予权限。
shell>chown www.www test -R

然后运行del_files.php,检测递归删除目录的效果。

>>> 您可能感兴趣的文章:
php 删除记录同时删除图片文件的代码
php删除上传的图片与文件夹(实例分享)
PHP上传图片、删除图片的简单示例代码
PHP删除N分钟前创建的所有文件的小例子
php删除目录及所有文件的方法举例
php ftp类(复制、移动、删除文件、创建目录等)
php删除记录同时刷新当前页面的实现代码
删除指定文件夹中所有文件的php代码
php上传与删除图片的简单范例
php写的一个删除目录的函数
php递归创建和删除文件夹的代码
php递归删除目录及文件的自定义函数rrmdir