探讨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在Web开发领域的优势
Oct 09 PHP
基于mysql的bbs设计(四)
Oct 09 PHP
一个简单的PHP&MYSQL留言板源码
Jul 19 PHP
在PHP中使用redis
Nov 04 PHP
php上传图片到指定位置路径保存到数据库的具体实现
Dec 30 PHP
php生成与读取excel文件
Oct 14 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
七种PHP开发环境搭建工具
Jun 28 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中的字符串函数
2006/10/09 PHP
php快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
php实现中文转数字
2016/02/18 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
Python 实现简单的电话本功能
2015/08/09 Python
Tornado 多进程实现分析详解
2018/01/12 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
数据库测试通常都包括哪些方面
2015/11/30 面试题
影子教师研修方案
2014/06/14 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
党性分析自查总结
2014/10/14 职场文书
整改落实自查报告
2014/11/05 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
vscode内网访问服务器的方法
2022/06/28 Servers