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 时间计算问题小结
Jan 04 PHP
PHP开发中常用的字符串操作函数
Feb 08 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
Jun 09 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
Sep 06 PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
浅谈PHP中的错误处理和异常处理
Feb 04 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 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 session_start()问题解疑(详细介绍)
2013/07/05 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
phpinfo的知识点总结
2019/10/10 PHP
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
python基础教程之获取本机ip数据包示例
2014/02/10 Python
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
室内设计专业学生的自我评价分享
2013/11/27 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
村官工作鉴定评语
2014/01/27 职场文书
财务总监管理职责范文
2014/03/09 职场文书
七夕情人节促销方案
2014/06/07 职场文书
2015年个人思想总结
2015/03/09 职场文书
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS
python神经网络 使用Keras构建RNN训练
2022/05/04 Python