PHP下用rmdir实现删除目录的三种方法小结


Posted in PHP onApril 20, 2008

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开发GUI
Oct 09 PHP
将数字格式的计算结果转为汉字格式
Oct 09 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
PHP实现过滤掉非汉字字符只保留中文字符
Jun 04 PHP
php检查字符串中是否有外链的方法
Jul 29 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 PHP
PHP赋值的内部是如何跑的详解
Jan 13 PHP
php集成开发环境详解
Sep 24 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
Aug 17 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
Mar 09 PHP
Mysql中limit的用法方法详解与注意事项
Apr 19 #PHP
php采集速度探究总结(原创)
Apr 18 #PHP
Snoopy类使用小例子
Apr 15 #PHP
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 #PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 #PHP
php zend解密软件绿色版测试可用
Apr 14 #PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 #PHP
You might like
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
destoon各类调用汇总
2014/06/20 PHP
初识Laravel
2014/10/30 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
Javascript实现找不同色块的游戏
2017/07/17 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
财务科科长岗位职责
2014/03/10 职场文书
社区禁毒工作方案
2014/06/02 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
教师素质教育心得体会
2016/01/19 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
利用Python多线程实现图片下载器
2022/03/25 Python