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+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
基于PHP读取csv文件内容的详解
Jun 18 PHP
PHP程序漏洞产生的原因分析与防范方法说明
Mar 06 PHP
PhpDocumentor 2安装以及生成API文档的方法
May 21 PHP
php文件缓存类汇总
Nov 21 PHP
php使用curl打开https网站的方法
Jun 17 PHP
理解php依赖注入和控制反转
May 11 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 PHP
Laravel5中Cookie的使用详解
May 03 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
建立文件交换功能的脚本(二)
2006/10/09 PHP
10个简化PHP开发的工具
2014/12/25 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
类和结构的区别
2012/08/15 面试题
面试自我介绍演讲稿
2014/04/29 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
新员工考核评语
2014/12/31 职场文书
学校国庆节活动总结
2015/03/23 职场文书
城南旧事电影观后感
2015/06/16 职场文书
Linux中各个目录的作用与内容
2022/06/28 Servers