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 相关文章推荐
基于mysql的论坛(6)
Oct 09 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
php多文件上传功能实现原理及代码
Apr 18 PHP
PHP四大安全策略
Mar 12 PHP
php动态生成函数示例
Mar 21 PHP
PHP中的数组处理函数实例总结
Jan 09 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
CI框架支持$_GET的两种实现方法
May 18 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
Apr 09 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 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简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
javascript 原型继承介绍
2011/08/30 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python内置数据类型详解
2014/08/18 Python
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
python实现统计代码行数的方法
2015/05/22 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
Python常见字典内建函数用法示例
2018/05/14 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
心理学专业求职信
2014/06/16 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
鸟的天堂导游词
2015/01/31 职场文书
数学教师个人总结
2015/02/06 职场文书
早恋主题班会
2015/08/14 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书