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和ACCESS写聊天室(二)
Oct 09 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
PHP延迟静态绑定使用方法实例解析
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多用户计数器代码
2007/03/11 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
laravel 数据验证规则详解
2019/10/23 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
探究Python中isalnum()方法的使用
2015/05/18 Python
用matplotlib画等高线图详解
2017/12/14 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
优秀大学生推荐信范文
2013/11/28 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
总经理岗位职责范本
2015/04/01 职场文书
党员转正申请报告
2015/05/15 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
战友聚会致辞
2015/07/28 职场文书
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python