探讨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实现的MySQL数据浏览器
Mar 11 PHP
PHP 替换模板变量实现步骤
Aug 24 PHP
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
smarty获得当前url的方法分享
Feb 14 PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 PHP
PHP常用处理静态操作类
Apr 03 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
关于PHP文件的自动运行方法分析
May 13 PHP
PHP连接MySQL进行增、删、改、查操作
Feb 19 PHP
PHP反射实际应用示例
Apr 03 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加密解密的代码
2007/07/16 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
php注册登录系统简化版
2020/12/28 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
javascript实现日历效果
2019/06/17 Javascript
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
python实现简单的TCP代理服务器
2014/10/08 Python
Python多层装饰器用法实例分析
2018/02/09 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
python验证码图片处理(二值化)
2019/11/01 Python
python操作gitlab API过程解析
2019/12/27 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
小学生获奖感言范文
2014/02/02 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
先进事迹材料范文
2014/12/29 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
毕业典礼邀请函
2015/01/31 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
Redis基本数据类型Set常用操作命令
2022/06/01 Redis