php实例分享之通过递归实现删除目录下的所有文件详解

 更新时间:2014年05月15日 17:27:54   作者:  
最近遇到一个实际问题,需要清空制定目录下的所有文件及清空数据库。清空数据库不难,但要如何递归删除一个目录下的所有文件呢。 于是去网上研究了下资料再加上自己琢磨解决了这一问题。

先贴代码:

复制代码 代码如下:

<?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 设计模式系列之 specification规格模式

    PHP 设计模式系列之 specification规格模式

    规格模式是组合模式的一种扩展,在框架性开发中使用较多(项目级开发很少使用),通过本文给大家介绍PHP 设计模式系列之 specification规格模式,对specification模式相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • laravel 实现用户登录注销并限制功能

    laravel 实现用户登录注销并限制功能

    今天小编就为大家分享一篇laravel 实现用户登录注销并限制功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Yii2中YiiBase自动加载类、引用文件方法分析(autoload)

    Yii2中YiiBase自动加载类、引用文件方法分析(autoload)

    这篇文章主要介绍了Yii2中YiiBase自动加载类、引用文件的方法,实例分析了Yii中的autoload函数用于自动加载类及引用文件的相关技巧,需要的朋友可以参考下
    2016-07-07
  • php获取小程序码的实现代码(B类接口)

    php获取小程序码的实现代码(B类接口)

    这篇文章主要介绍了php获取小程序码的实现代码(B类接口),需要的朋友可以参考下
    2020-06-06
  • PHP之深入学习Yii2缓存Cache组件详细讲解

    PHP之深入学习Yii2缓存Cache组件详细讲解

    这篇文章主要介绍了PHP之深入学习Yii2缓存Cache组件详细讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • php使用curl存储cookie的示例

    php使用curl存储cookie的示例

    这篇文章主要介绍了php使用curl存储cookie的示例,需要的朋友可以参考下
    2014-03-03
  • PHP中使用三元条件运算符一些例子和场景

    PHP中使用三元条件运算符一些例子和场景

    这篇文章主要介绍了PHP中使用三元条件运算符一些例子和场景,三元条件运算符是PHP中用于根据条件表达式的结果来选择两个值中的一个的紧凑语法,基本形式为:条件 ? 表达式1 : 表达式2,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • ThinkPHP文件缓存类代码分享

    ThinkPHP文件缓存类代码分享

    本文给大家分享的是取自ThinkPHP中的关于文件缓存类的代码,非常的实用,效率也非常不错,这里推荐给大家,有需要的小伙伴参考下。
    2015-04-04
  • 详解php语言最牛掰的Laravel框架

    详解php语言最牛掰的Laravel框架

    Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel。本文我们将讨论为什么Laravel会成为最成功的PHP框架
    2017-11-11
  • php笔记之:文章中图片处理的使用

    php笔记之:文章中图片处理的使用

    本篇文章介绍了,php文章中图片处理的使用。需要的朋友参考下
    2013-04-04

最新评论