当前位置:首页 > PHP教程 > php文件操作 > 列表

用PHP实现遍历删除目录及此目录下存放的所有文件

发布:smiling 来源: PHP粉丝网  添加日期:2020-03-02 16:18:42 浏览: 评论:0 

本篇文章主要讲述的是使用PHP遍历一个目录下的所有目录及文件,并删除该目录及其目录下的所有子目录和文件,本次代码通过递归的方式来实现,感兴趣的朋友来了解一下吧。

用到的函数:

scandir($path) 遍历一个目录下所有文件并返回数组。

unlink($filename) 删除文件。

rmdir($path) 只删除空文件夹。

PHP代码:

  1. /** 
  2.  
  3.  * 删除当前目录及其目录下的所有目录和文件 
  4.  
  5.  * @param string $path 待删除的目录 
  6.  
  7.  * @note  $path路径结尾不要有斜杠/(例如:正确[$path='./static/image'],错误[$path='./static/image/']) 
  8.  
  9.  */ 
  10.  
  11. function deleteDir($path) { 
  12.  
  13.   
  14.  
  15.     if (is_dir($path)) { 
  16.  
  17.         //扫描一个目录内的所有目录和文件并返回数组 
  18.  
  19.         $dirs = scandir($path); 
  20.  
  21.   
  22.  
  23.         foreach ($dirs as $dir) { 
  24.  
  25.             //排除目录中的当前目录(.)和上一级目录(..) 
  26.  
  27.             if ($dir != '.' && $dir != '..') { 
  28.  
  29.                 //如果是目录则递归子目录,继续操作 
  30.  
  31.                 $sonDir = $path.'/'.$dir
  32.  
  33.                 if (is_dir($sonDir)) { 
  34.  
  35.                     //递归删除 
  36.  
  37.                     deleteDir($sonDir); 
  38.  
  39.   
  40.  
  41.                     //目录内的子目录和文件删除后删除空目录 
  42.  
  43.                     @rmdir($sonDir); 
  44.  
  45.                 } else { 
  46.  
  47.   
  48.  
  49.                     //如果是文件直接删除 
  50.  
  51.                     @unlink($sonDir); 
  52.  
  53.                 } 
  54.  
  55.             } 
  56. //phpfensi.com 
  57.         } 
  58.  
  59.         @rmdir($path); 
  60.  
  61.     } 
  62.  

Tags: PHP遍历删除目录

分享到: