php rmdir使用递归函数删除非空目录实例详解


Posted in PHP onOctober 20, 2016

 首先向大家介绍一下rmdir()函数。

php rmdir()函数

rmdir — 删除空目录

语法:

bool rmdir ( string $dirname [, resource $context ] )

尝试删除 dirname 所指定的目录。 该目录必须是空的,而且要有相应的权限。 失败时会产生一个E_WARNING级别的错误。
参数:

1.dirname:目录的路径。
2.context:在 PHP 5.0.0 中增加了对上下文(Context)的支持。

php rmdir()删除非空目录

上面已经说过,rmdir()函数只能删除空目录,如果是非空目录就需要先进入到目录中,使用unlink()函数将目录中的每个文件都删除掉,再回来将这个空目录删除。如果目录中还存在子目录,而且目录也非空,就需要使用递归的方法。自定义递归函数删除目录的源代码如下:

<?php
function delDir($directory){//自定义函数递归的函数整个目录
  if(file_exists($directory)){//判断目录是否存在,如果不存在rmdir()函数会出错
    if($dir_handle=@opendir($directory)){//打开目录返回目录资源,并判断是否成功
      while($filename=readdir($dir_handle)){//遍历目录,读出目录中的文件或文件夹
        if($filename!='.' && $filename!='..'){//一定要排除两个特殊的目录
          $subFile=$directory."/".$filename;//将目录下的文件与当前目录相连
          if(is_dir($subFile)){//如果是目录条件则成了
            delDir($subFile);//递归调用自己删除子目录
          }
          if(is_file($subFile)){//如果是文件条件则成立
            unlink($subFile);//直接删除这个文件
          }
        }
      }
      closedir($dir_handle);//关闭目录资源
      rmdir($directory);//删除空目录
    }
  }
}

delDir("mydir");//调用delDir函数

?>

处理递归删除非空目录外,我们也可以使用操作系统命令“rm -rf”删除非空的目录,但也要从安全和跨平台方面考虑尽量不要去使用。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
用在PHP里的JS打印函数
Oct 09 PHP
PHP中的正规表达式(二)
Oct 09 PHP
PHP数据缓存技术
Feb 14 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
php的大小写敏感问题整理
Dec 29 PHP
PHP中header和session_start前不能有输出原因分析
Jan 11 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
PHP第三方登录―QQ登录实现方法
Feb 06 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
Mar 14 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 #PHP
php实现登陆模块功能示例
Oct 20 #PHP
php实现文章置顶功能的方法
Oct 20 #PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 #PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 #PHP
php禁用cookie后session设置方法分析
Oct 19 #PHP
php无限级分类实现方法分析
Oct 19 #PHP
You might like
解析PHP可变函数的经典用法
2013/06/20 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
phpinfo的知识点总结
2019/10/10 PHP
jQuery 操作XML入门
2008/12/25 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
vue监听dom大小改变案例
2020/07/29 Javascript
Python生成随机数组的方法小结
2017/04/15 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
基于python实现对文件进行切分行
2020/04/26 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
测试工程师程序员求职信范文
2014/02/20 职场文书
投标承诺书范本
2014/03/27 职场文书
给老婆的保证书范文
2014/04/28 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
党员承诺书范文
2014/05/19 职场文书
学校四群教育实施方案
2014/06/12 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
政风行风整改报告
2014/11/06 职场文书
思想品德评语大全
2014/12/31 职场文书
销售督导岗位职责
2015/04/10 职场文书
面试通知单大全
2015/04/20 职场文书
旅游投诉信范文
2015/07/02 职场文书
python 网络编程要点总结
2021/06/18 Python
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android