探讨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 一个随机字符串生成代码
May 26 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
Sep 30 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php获取文件名后缀常用方法小结
Feb 24 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
PHP大神的十大优良习惯
Sep 14 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 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开启安全模式后禁用的函数集合
2011/06/26 PHP
php的ajax简单实例
2014/02/27 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
PHP反射API示例分享
2016/10/08 PHP
PHP实现微信对账单处理
2018/10/01 PHP
Js中获取frames中的元素示例代码
2013/07/30 Javascript
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
深入探讨前端框架react
2015/12/09 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
python 快速排序代码
2009/11/23 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
python中uuid模块实例浅析
2020/12/29 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
国际领先的学术出版商:Springer
2017/01/11 全球购物
财务经理岗位职责
2013/11/09 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
高中教师评语大全
2014/04/25 职场文书
市场营销战略计划书
2014/05/06 职场文书
乔丹名人堂演讲稿
2014/05/24 职场文书
电子商务求职信
2014/06/15 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书