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 相关文章推荐
用来解析.htpasswd文件的PHP类
Sep 05 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
Yii使用find findAll查找出指定字段的实现方法
Sep 05 PHP
php返回json数据函数实例
Oct 09 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
PHP实现远程下载文件到本地
May 17 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
php中strlen和mb_strlen用法实例分析
Nov 12 PHP
利用PHP生成CSV文件简单示例
Dec 21 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
PHP:风雨欲来 路在何方?
2006/10/09 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
php实用代码片段整理
2016/11/12 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
PHP实现的策略模式示例
2019/03/20 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
Javascript 事件流和事件绑定
2009/07/16 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
详解Vue.js入门环境搭建
2017/03/17 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
python psutil库安装教程
2018/03/19 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python中bytes和str类型的区别
2019/10/21 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
python更新数据库中某个字段的数据(方法详解)
2020/11/18 Python
python Timer 类使用介绍
2020/12/28 Python
C++:局部变量能否和全局变量重名
2014/03/03 面试题
大学生饮食连锁店创业计划书
2014/01/17 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
2019教师的学习计划
2019/06/25 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL