探讨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之第二天
Oct 09 PHP
PHP中对数据库操作的封装
Oct 09 PHP
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
PHP集成FCK的函数代码
Sep 27 PHP
php 运行效率总结(提示程序速度)
Nov 26 PHP
php set_magic_quotes_runtime() 函数过时解决方法
Jul 08 PHP
第五章 php数组操作
Dec 30 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
Jan 04 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
PHP生成短网址的思路以及实现方法的详解
Mar 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
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
解析php中const与define的应用区别
2013/06/18 PHP
PHP中常用的数组操作方法笔记整理
2016/05/16 PHP
js传值 判断
2006/10/26 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
python hook监听事件详解
2018/10/25 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
Python中实现输入一个整数的案例
2020/05/03 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
Shell编程面试题
2016/05/29 面试题
大学生入党思想汇报
2014/01/01 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
就业协议书
2014/09/12 职场文书
2014年保密工作总结
2014/11/22 职场文书
股权转让协议范本
2014/12/07 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
换届选举主持词
2015/07/03 职场文书