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
一个捕获函数输出的函数
Feb 14 PHP
PHP下10件你也许并不了解的事情
Sep 11 PHP
php 数学运算验证码实现代码
Oct 11 PHP
php之Memcache学习笔记
Jun 17 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
php实现简单爬虫的开发
Mar 28 PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 PHP
php中关于换行的实例写法
Sep 26 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Jan 22 PHP
ThinkPHP5框架中使用JWT的方法示例
Jun 03 PHP
详解thinkphp的Auth类认证
May 28 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解决图片无损压缩的问题
2017/09/01 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
PHP chop()函数讲解
2019/02/11 PHP
PHP7新增函数
2021/03/09 PHP
javascript读取RSS数据
2007/01/20 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
Python的多维空数组赋值方法
2018/04/13 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
简单了解python的一些位运算技巧
2019/07/13 Python
基于python中__add__函数的用法
2019/11/25 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
python help函数实例用法
2020/12/06 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
电台实习生求职信
2014/02/25 职场文书
秘书英文求职信
2014/04/16 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
小程序自定义轮播图圆点组件
2022/06/25 Javascript