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创建动态图像
Oct 09 PHP
十天学会php之第二天
Oct 09 PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 PHP
PHP中Closure类的使用方法及详解
Oct 09 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
Mar 17 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
php无限级评论嵌套实现代码
Apr 18 PHP
php实现表单提交上传文件功能
May 28 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
laradock环境docker-compose操作详解
Jul 29 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 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
PHP Switch 语句之学习笔记
2013/09/21 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
document.getElementById介绍
2011/09/13 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
Python time库基本使用方法分析
2019/12/13 Python
python实现批量修改文件名
2020/03/23 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
Java语言的优势
2015/01/10 面试题
中英双版中文教师求职信
2013/10/27 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
师德标兵事迹材料
2014/12/19 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
python基础之错误和异常处理
2021/10/24 Python
vue特效之翻牌动画
2022/04/20 Vue.js
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python