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+dbfile开发小型留言本
Oct 09 PHP
用PHP和ACCESS写聊天室(四)
Oct 09 PHP
手把手教你使用DedeCms的采集的图文教程
Mar 11 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
PHP批量上传图片的具体实现方法介绍.
Feb 26 PHP
PHP Session机制简介及用法
Aug 19 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
PHP下载远程图片并保存到本地方法总结
Jan 22 PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 PHP
laravel框架中间件简单使用方法示例
Jan 25 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
python保存数据到本地文件的方法
2018/06/23 Python
python实现人机猜拳小游戏
2020/02/03 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
任意存:BOXFUL
2018/05/21 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书