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 相关文章推荐
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
学习php中的正则表达式
Aug 17 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
Laravel中为什么不使用blpop取队列详析
Aug 01 PHP
PHP实现微信退款的方法示例
Mar 26 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
新浪的图片新闻效果
2007/01/13 Javascript
extjs form textfield的隐藏方法
2008/12/29 Javascript
JS学习之一个简易的日历控件
2010/03/24 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
javaScript语法总结
2016/11/25 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
python实现dict版图遍历示例
2014/02/19 Python
Python中操作MySQL入门实例
2015/02/08 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
使用python实现对元素的长截图功能
2019/11/14 Python
Python如何实现的二分查找算法
2020/05/27 Python
python打开音乐文件的实例方法
2020/07/21 Python
Python如何输出警告信息
2020/07/30 Python
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
大学生期末自我鉴定
2014/02/01 职场文书
警示教育活动总结
2014/05/05 职场文书
党支部换届选举方案
2014/05/08 职场文书
股指期货心得体会
2014/09/13 职场文书
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
Python first-order-model实现让照片动起来
2022/06/25 Python