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

2015-01-24信息快讯网

最近遇到一个实际问题,需要清空制定目录下的所有文件及清空数据库。清空数据库不难,但要如何递归删除一个目录下的所有文件呢。 于是去网上研究了下资料再加上自己琢磨解决了这一问题。

先贴代码:

<?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清除数组中所有字符串两端空格的方法
php实现删除指定目录下相关文件的方法
ThinkPHP基于PHPExcel导入Excel文件的方法
PHP中使用Session配合Javascript实现文件上传进度条功能
PHP实现文件下载断点续传详解
PHP常用技术文之文件操作和目录操作总结
php数组中删除元素之重新索引的方法
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
PHP获取表单所有复选框的值的方法
php批量删除数据库下指定前缀的表以prefix_为例
修改destoon会员公司的伪静态中的com目录的方法
PHP采用自定义函数实现遍历目录下所有文件的方法
PHP中unset,array_splice删除数组中元素的区别
PHP中使用glob函数实现一句话删除某个目录下的所有文件
PHP取余函数介绍MOD(x,y)与x%y
php实例分享之二维数组排序
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
php递归删除目录下的文件但保留的实例分享
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
php使用mkdir创建多级目录入门例子
php实现按文件名搜索文件的远程文件查找器
PHP按行读取文件时删除换行符的3种方法
删除html标签得到纯文本可处理嵌套的标签
PHP递归删除目录几个代码实例
PHP获取栏目的所有子级和孙级栏目的ID号示例
php遍历文件夹下的所有文件和子文件夹示例
递归删除一个节点以及该节点下的所有节点示例
php过滤所有恶意字符(批量过滤post,get敏感数据)
©2014-2024 dbsqp.com