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 相关文章推荐
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
Apr 02 PHP
基于php缓存的详解
May 15 PHP
新手菜鸟必读:session与cookie的区别
Aug 22 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
浅谈php命令行用法
Feb 04 PHP
PHP实现批量生成App各种尺寸Logo
Mar 19 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
Oct 09 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
PHP实现的数据对象映射模式详解
Mar 20 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 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
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
javascript显示选择目录对话框的代码
2008/11/10 Javascript
jquery 弹出层实现代码
2009/10/30 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
python图像处理入门(一)
2019/04/04 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
优秀高中生事迹材料
2014/02/11 职场文书
安全环保演讲稿
2014/08/28 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
三年级学生评语大全
2014/12/26 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android