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版)
Oct 09 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
php使用百度ping服务代码实例
Jun 19 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
四个PHP非常实用的功能
Sep 29 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
轻松实现php文件上传功能
Feb 17 PHP
Laravel框架中缓存的使用方法分析
Sep 06 PHP
php让json_encode不自动转义斜杠“/”的方法
Apr 27 PHP
PHP实现抽奖功能实例代码
Jun 30 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
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
PHP查询快递信息的方法
2015/03/07 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
react-native 封装选择弹出框示例(试用ios&android)
2017/07/11 Javascript
详解React中setState回调函数
2018/06/14 Javascript
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python日期相关操作实例小结
2019/06/24 Python
python zip()函数的使用示例
2020/09/23 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
党的群众路线学习材料
2014/05/16 职场文书
会计人员演讲稿
2014/09/11 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript