探讨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 中英文混合排版中处理字符串常用的函数
Apr 12 PHP
PHP下常用正则表达式整理
Oct 26 PHP
php在项目中寻找代码的坏味道(综艺命名)
Jul 19 PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Jul 11 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
PHP-FPM实现性能优化
Mar 31 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
根据key删除数组中指定的元素实现方法
Mar 02 PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 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/04/11 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
ArrayList类(增强版)
2007/04/04 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
Python解析json代码实例解析
2019/11/25 Python
对python中各个response的使用说明
2020/03/28 Python
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
银行职员自我鉴定
2014/04/20 职场文书
大学生演讲稿
2014/04/25 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
党员群众路线剖析材料
2014/10/08 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
nginx 添加http_stub_status_module模块
2022/05/25 Servers