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边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
Discuz板块横排显示图片的实现方法
May 28 PHP
Cannot modify header information错误解决方法
Oct 08 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 PHP
php制作动态随机验证码
Feb 12 PHP
php安装swoole扩展的方法
Mar 19 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
你应该知道PHP浮点数知识
May 13 PHP
Yii支持多域名cors原理的实现
Dec 05 PHP
tp5 实现列表数据根据状态排序
Oct 18 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
PHP执行普通shell命令流程解析
Aug 24 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
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
js模拟点击事件实现代码
2012/11/06 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
Python 实现try重新执行
2019/12/21 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
办公室驾驶员岗位职责
2013/11/15 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
书法比赛获奖感言
2014/02/10 职场文书
婚礼司仪主持词
2014/03/14 职场文书
转让协议书范本
2014/04/15 职场文书
办公用品质量保证书
2015/05/11 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers