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 出现乱码和Sessions验证问题的解决方法!
Dec 06 PHP
PHP 加密与解密的斗争
Apr 17 PHP
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
关于PHP实现异步操作的研究
Feb 03 PHP
PHP运行模式的深入理解
Jun 03 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
php实现上传图片生成缩略图示例
Apr 13 PHP
php实现读取和写入tab分割的文件
Jun 01 PHP
php版微信公众号自定义分享内容实现方法
Sep 22 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 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
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
php简单的上传类分享
2016/05/15 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
js中opener与parent的区别详细解析
2014/01/14 Javascript
JavaScript中this详解
2015/09/01 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
浅谈js中的变量名和函数名重名
2017/02/13 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
Vue 实现登录界面验证码功能
2020/01/03 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
详解python里的命名规范
2018/07/16 Python
python实现简易数码时钟
2021/02/19 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
详解python多线程之间的同步(一)
2019/04/03 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
自荐信如何“自荐”
2013/10/24 职场文书
销售顾问的岗位职责
2013/11/13 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年业务工作总结
2014/11/17 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
CAD实训总结范文
2015/08/03 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python