php实例分享之通过递归实现删除目录下的所有文件详解


Posted in PHP onMay 15, 2014

先贴代码:

<?php
function delFile($dirName){ 
 if ($handle = opendir("$dirName")){
  while (($item = readdir($handle))!=false){
   if ($item!="." && $item!="..")  {
    if ( is_dir( "$dirName/$item" ) ) {  
             delFile( "$dirName/$item" );  
       } else unlink("$dirName/$item");
  }
 }
 closedir($handle);
}
?>

<?php
 delFile('/home/sources');
?>

先讲解几个函数:

opendir() :函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。

若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。例如$dir=@ opendir("image");

readdir():返回由opendir函数打开的目录句柄中的条目,即顺序返回文件夹中的文件名,顺序按照文件系统中制定的排序方式。

id_dir():即检测参数文件是否为目录,如果是返回true.

un_link():即删除制定文件。

所以程序执行思路为:函数调用主目录,然后顺序检测每一文件是否为目录,如果为目录则递归调用函数,并对不为目录的文件进行删除,直到遍历完所有的文件。

这个程序只实现删除文件夹里面的内容,而没有删除文件夹本身,如果要实现这一目的,加上下面代码即可:

rmdir($dirName);
PHP 相关文章推荐
php上传文件的增强函数
Jul 21 PHP
php设计模式 Facade(外观模式)
Jun 26 PHP
学习使用curl采集curl使用方法
Jan 11 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
基于php和mysql的简单的dao类实现crud操作功能
Jan 27 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
php实现refresh刷新页面批量导入数据的方法
Dec 23 PHP
php带抄送和密件抄送的邮件发送方法
Mar 20 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
Oct 14 PHP
php实例分享之二维数组排序
May 15 #PHP
php表单请求获得数据求和示例
May 15 #PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
May 15 #PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 #PHP
ThinkPHP使用心得分享-分页类Page的用法
May 15 #PHP
php自定义函数截取汉字长度
May 15 #PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 #PHP
You might like
smarty section简介与用法分析
2008/10/03 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
JavaScript 的继承
2011/10/01 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
javascript 操作cookies详解及实例
2017/02/22 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
python类型强制转换long to int的代码
2013/02/10 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
Python序列化基础知识(json/pickle)
2017/10/19 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
python实现静态服务器
2019/09/05 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
python实现实时视频流播放代码实例
2020/01/11 Python
python基于event实现线程间通信控制
2020/01/13 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
Python中if有多个条件处理方法
2020/02/26 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
应届生污水处理求职信
2013/11/06 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
爱耳日活动总结
2014/04/30 职场文书
学校党员干部承诺书
2015/05/04 职场文书
校园安全主题班会
2015/08/12 职场文书
Python+Appium自动化测试的实战
2021/06/30 Python