首页 > 编程语言 > PHP > PHP如何删除当前目录及其目录下的所有文件?
2019
02-27

PHP如何删除当前目录及其目录下的所有文件?

本文给大家介绍PHP如何删除当前目录及其目录下的所有文件?

使用PHP遍历一个目录下的所有目录及文件,并删除该目录及其目录下的所有子目录和文件,本次代码通过递归的方式来实现。

用到的函数:

scandir($path) 遍历一个目录下所有文件并返回数组。
unlink($filename) 删除文件。
rmdir($path) 只删除空文件夹。

PHP代码:

/**  
* 删除当前目录及其目录下的所有目录和文件  
* @param string $path 待删除的目录  
* @note  $path路径结尾不要有斜杠/(例如:正确[$path='./static/image'],错误[$path='./static/image/'])  
*/ 
function deleteDir($path) {
      if (is_dir($path)) {
         //扫描一个目录内的所有目录和文件并返回数组
         $dirs = scandir($path);
          foreach ($dirs as $dir) {
             //排除目录中的当前目录(.)和上一级目录(..)
             if ($dir != '.' && $dir != '..') {
                 //如果是目录则递归子目录,继续操作
                 $sonDir = $path.'/'.$dir;
                 if (is_dir($sonDir)) {
                     //递归删除
                     deleteDir($sonDir);
                      //目录内的子目录和文件删除后删除空目录
                     @rmdir($sonDir);
                 } else {
                      //如果是文件直接删除
                     @unlink($sonDir);
                 }
             }
         }
         @rmdir($path);
     }
 }

 

最后编辑:
作者:小雅
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。