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 相关文章推荐
oracle资料库函式库
Oct 09 PHP
一个可以找出源代码中所有中文的工具
Oct 25 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
php中去除所有js,html,css代码
Oct 12 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
php实现cookie加密的方法
Mar 10 PHP
Yii2.0高级框架数据库增删改查的一些操作
Nov 16 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 PHP
laravel框架中视图的基本使用方法分析
Nov 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和ACCESS写聊天室(十)
2006/10/09 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
javascript 继承实现方法
2009/08/26 Javascript
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
Js控制弹窗实现在任意分辨率下居中显示
2013/08/01 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
Python Paramiko模块的安装与使用详解
2016/11/18 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
大学本科毕业生的自我鉴定
2013/11/26 职场文书
土木工程个人自荐信范文
2013/11/30 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
python编写函数注意事项总结
2021/03/29 Python
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers