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 23 PHP
PHP之数组学习
May 29 PHP
Apache中php.ini的设置方法
Feb 28 PHP
PHP静态调用非静态方法的应用分析
May 02 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
PHP检测用户语言的方法
Jun 15 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
jquery Ajax 全局调用封装实例详解
2017/01/16 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
2020/02/09 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python小技巧之批量抓取美女图片
2014/06/06 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python实现直播推流效果
2019/11/26 Python
Pygame的程序开始示例代码
2020/05/07 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
重构Python代码的六个实例
2020/11/25 Python
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
函授本科毕业生自我鉴定
2013/10/16 职场文书
学生会招新策划书
2014/02/14 职场文书
啤酒节策划方案
2014/05/28 职场文书
航空学院求职信
2014/06/11 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
pandas取dataframe特定行列的实现方法
2021/05/24 Python
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis
详解python的异常捕获
2022/03/03 Python