PHP下几种删除目录的方法总结


Posted in PHP onAugust 19, 2007

呵呵,忽然一个朋友问我如何删除目录,比如下面有文件呢,我说用递规呀,他说太慢了。于是就总结出了下面几种办法。

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。循环法   //from: http://www.knowsky.com/1148.html

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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
PHP实现微信发红包程序
Aug 24 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 PHP
PHP巧妙利用位运算实现网站权限管理的方法
Mar 12 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 PHP
PHP dirname(__FILE__)原理及用法解析
Oct 28 PHP
wordpress之wp-settings.php
Aug 17 #PHP
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 #PHP
在PHP里得到前天和昨天的日期的代码
Aug 16 #PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 #PHP
真正的ZIP文件操作类(php)
Jul 21 #PHP
php 用sock技术发送邮件的函数
Jul 21 #PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 #PHP
You might like
SSI指令
2006/11/25 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
Python解释执行原理分析
2014/08/22 Python
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
python之消除前缀重命名的方法
2018/10/21 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
python对一个数向上取整的实例方法
2020/06/18 Python
python切割图片的示例
2020/11/12 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
五一服装活动方案
2014/01/11 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
大学生校园创业计划书
2014/02/08 职场文书
计生工作先进事迹
2014/08/15 职场文书
公司委托书格式范文
2014/10/09 职场文书
爱心捐助活动总结
2015/05/09 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
施工现场安全管理制度
2015/08/05 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis
详解MindSpore自定义模型损失函数
2021/06/30 Python
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android