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 相关文章推荐
超级简单的发送邮件程序
Oct 09 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
php获取当前页面完整URL地址
Dec 30 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
PHP的mysqli_select_db()函数讲解
Jan 23 PHP
PHP压缩图片功能的介绍
Mar 21 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
.htaccess文件保护实例讲解
2011/02/06 PHP
深入解析php中的foreach问题
2013/06/30 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
WebPack基础知识详解
2017/01/16 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
python3 与python2 异常处理的区别与联系
2016/06/19 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
python读取和保存视频文件
2018/04/16 Python
Python collections模块使用方法详解
2019/08/28 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
深入解析HTML5使用SVG图像时的viewBox属性用法
2015/09/02 HTML / CSS
纽约海:Sea New York
2018/11/04 全球购物
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
运动会入场解说词300字
2014/01/25 职场文书
优良学风班总结材料
2014/02/08 职场文书
婚礼主持词开场白
2014/03/13 职场文书
个人承诺书怎么写
2014/05/24 职场文书
优秀纪检干部材料
2014/08/27 职场文书
2015年采购工作总结
2015/04/10 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
Python多线程实用方法以及共享变量资源竞争问题
2022/04/12 Python
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python