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几个数学计算的内部函数学习整理
Aug 06 PHP
mysql总结之explain
Feb 27 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
php修改上传图片尺寸的方法
Apr 14 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
php中通用的excel导出方法实例
Dec 30 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 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全局变量与超级全局变量区别分析
2016/04/01 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
js监听键盘事件示例代码
2013/07/26 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
微信小程序日历效果
2018/12/29 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
Python探索之修改Python搜索路径
2017/10/25 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
python找出完数的方法
2018/11/12 Python
python Tkinter的图片刷新实例
2019/06/14 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
长安大学毕业生自我鉴定
2014/01/17 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers