探讨PHP删除文件夹的三种方法


Posted in PHP onJune 09, 2013

1、递归法

deleteDir($dir)
{
if (rmdir($dir)==false && is_dir($dir)) {
    if ($dp = opendir($dir)) {
     while (($file=readdir($dp)) != false) {
      if (is_dir($file) && $file!='.' && $file!='..') {
       deleteDir($file);
      } else {
       unlink($file);
      }
     }
     closedir($dp);
    } else {
     exit('Not permission');
    }
}
}

2、系统调用法
function del_dir($dir)
{
if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
       $str = "rmdir /s/q " . $dir;
} else {
       $str = "rm -Rf " . $dir;
}
}

3、循环法
function deltree($pathdir)
{
echo $pathdir;//我调试时用的
if(is_empty_dir($pathdir))//如果是空的
      {
      rmdir($pathdir);//直接删除
      }
      else
      {//否则读这个目录,除了.和..外
          $d=dir($pathdir);
          while($a=$d->read())
          {
          if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}
          //如果是文件就直接删除
          if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
          {//如果是目录
              if(!is_empty_dir($pathdir.'/'.$a))//是否为空
              {//如果不是,调用自身,不过是原来的路径+他下级的目录名
              deltree($pathdir.'/'.$a);
              }
              if(is_empty_dir($pathdir.'/'.$a))
              {//如果是空就直接删除
              rmdir($pathdir.'/'.$a);
              }
          }
          }
          $d->close();          
      echo "必须先删除目录下的所有文件";//我调试时用的
      }
}
function is_empty_dir($pathdir)
{
//判断目录是否为空,我的方法不是很好吧?只是看除了.和..之外有其他东西不是为空
$d=opendir($pathdir);
$i=0;
      while($a=readdir($d))
      {
      $i++;
      }
closedir($d);
if($i>2){return false;}
else return true;
}

PHP 相关文章推荐
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
ThinkPHP之A方法实例讲解
Jun 20 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
php获取网页上所有链接的方法
Apr 03 PHP
PHP中预定义的6种接口介绍
May 12 PHP
PHP中的随机性 你觉得自己幸运吗?
Jan 22 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
Laravel 加载第三方类库的方法
Apr 20 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
如何用php获取文件名后缀
Jun 09 #PHP
深入php多态的实现详解
Jun 09 #PHP
深入PHP autoload机制的详解
Jun 09 #PHP
定义php常量的详解
Jun 09 #PHP
基于php冒泡排序算法的深入理解
Jun 09 #PHP
深入apache host的配置详解
Jun 09 #PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 #PHP
You might like
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
PHP修改session_id示例代码
2014/01/08 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
2015/01/09 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
python列表操作实例
2015/01/14 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
Django数据库表反向生成实例解析
2018/02/06 Python
请解释一下webService? 如何用.net实现webService
2014/06/09 面试题
ajax是什么及其工作原理
2012/02/08 面试题
大学毕业生工作的自我评价
2013/10/01 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
党支部活动策划方案
2014/08/18 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
关于长城的导游词
2015/01/30 职场文书
会计岗位职责范本
2015/04/02 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL