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 相关文章推荐
PHP中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
国外PHP程序员的13个好习惯小结
Feb 20 PHP
fetchAll()与mysql_fetch_array()的区别详解
Jun 05 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
Sep 30 PHP
php随机取mysql记录方法小结
Dec 27 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
深入理解PHP中的count函数
May 31 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
PHP不使用内置函数实现字符串转整型的方法示例
Jul 03 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
javascript中的对象创建 实例附注释
2011/02/08 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
打印机墨盒:123Inkjets
2017/02/16 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
冰淇淋开店创业计划书
2014/02/01 职场文书
大学毕业感言一句话
2014/02/06 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
交通事故协议书范文
2014/10/23 职场文书
2014年宣传工作总结
2014/11/18 职场文书
社区好人好事材料
2014/12/26 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
党员违纪检讨书
2015/05/05 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android