PHP之文件函数: 遍历文件夹

<?php
/**
* 遍历并得到某个目录下的所有文件名 如 f:/1/1.txt
* @author dhgate
*/

/**
* 遍历函数 getAllFiles()
* @param   string  $filedir    要遍历的目录
* @return  array   遍历的结果
*/
function getAllFiles($filedir) {
 $allfiles = array(); //文件名数组
 $tempArr = array(); //临时文件名数组

 if (is_dir($filedir)) {//判断要遍历的是否是目录
  if ($dh = opendir($filedir)) {//打开目录并赋值一个目录句柄(directory handle)
   while (FALSE !== ($filestring = readdir($dh))) {//读取目录中的文件名
    if ($filestring != '.' && $filestring != '..') {//如果不是.和..(每个目录下都默认有.和..)
     if (is_dir($filedir . $filestring)) {//该文件名是一个目录时
      $tempArr = getAllFiles($filedir . $filestring . '/');//继续遍历该子目录
      $allfiles = array_merge($allfiles, $tempArr); //把临时文件名和临时文件名组合
     }
     else if (is_file($filedir . $filestring)) {
      $allfiles[] = $filedir . $filestring; //如果该文件名是一个文件不是目录,直接赋值给文件名数组
     }
    }
   }
  } else {//打开目录失败
   exit('Open the directory failed');
  }
  closedir($dh);//关闭目录句柄
  return $allfiles;//返回文件名数组
 }
 else {//目录不存在
  exit('The directory is not exist');
 }
}

//下面$directory为当前目录下的file目录 如果要遍历其它目录,请写成 $directory = 'f:/目录/';最后一定要以/结尾
//如果目录为 'f:\a\a'要写成 'f:/a/a/'
$directory = str_replace('\\', '/', realpath(dirname(__FILE__).'/file') . '/');
echo '<pre>';//格式化输出
var_dump(getAllFiles($directory));//打印文件名数组
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值