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函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
php截取字符串并保留完整xml标签的函数代码
Feb 06 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
深入php self与$this的详解
Jun 08 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
php合并数组中相同元素的方法
Nov 13 PHP
PHP实现支持加盐的图片加密解密
Sep 09 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
Sep 30 PHP
php版银联支付接口开发简明教程
Oct 14 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
PHP扩展mcrypt实现的AES加密功能示例
Jan 29 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 magic_quotes_gpc的使用方法详解
2013/06/24 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
php自定义时间转换函数示例
2016/12/07 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
[00:58]PWL开团时刻DAY5——十人开雾0换5
2020/11/04 DOTA
Python中的choice()方法使用详解
2015/05/15 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
python中requests和https使用简单示例
2018/01/18 Python
浅谈Python中的私有变量
2018/02/28 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
工程总经理工作职责
2013/12/09 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
拓展训练激励口号
2014/06/17 职场文书