php遍历文件夹下的所有文件和子文件夹示例


Posted in PHP onMarch 20, 2014

遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。

<?php
/**
* @param string $dir
* @return array
*/
function my_scandir($dir)
{
 $files = array();
 if ( $handle = opendir($dir) ) {
  while ( ($file = readdir($handle)) !== false ) 
  {
   if ( $file != ".." && $file != "." ) 
   {
    if ( is_dir($dir . "/" . $file) ) 
    {
     $files[$file] = my_scandir($dir . "/" . $file);
    }
    else 
    {
     $files[] = $file;
    }
   }
  }
  closedir($handle);
  return $files;
 }
}
function my_scandir1($dir)
{
 $files = array();
 $dir_list = scandir($dir);
 foreach($dir_list as $file)
 {
  if ( $file != ".." && $file != "." ) 
  {
   if ( is_dir($dir . "/" . $file) ) 
   {
    $files[$file] = my_scandir1($dir . "/" . $file);
   }
   else 
   {
    $files[] = $file;
   }
  }
 }
 return $files;
}
$result = my_scandir('./');
$result = my_scandir1('./');
?>

另一个实现方法

function fetchDir($dir) { 
        foreach(glob($dir.'\*') as $file) { 
            echo $file,"\n"; 
            if(is_dir($file)) { 
                fetchDir($file); 
            } 
        } 
    } 
    fetchDir("D:\wamp\www\any");

还可以把‘\*', 换成 DIRECTORY_SEPARATOR.'*' ,把‘\n'换成PHP_EOL ,这样可以跨平台了。

PHP 相关文章推荐
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
May 26 PHP
PHP 表单提交给自己
Jul 24 PHP
PHP 遍历XP文件夹下所有文件
Nov 27 PHP
php+mysql事务rollback&amp;commit示例
Feb 08 PHP
PHP中return 和 exit 、break和contiue 区别与用法
Apr 09 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
php实现的支持断点续传的文件下载类
Sep 23 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
在php的yii2框架中整合hbase库的方法
Sep 20 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
Nov 19 PHP
php数据库备份还原类分享
Mar 20 #PHP
PHP实现微信公众平台音乐点播
Mar 20 #PHP
一个PHP针对数字的加密解密类
Mar 20 #PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 #PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 #PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
Mar 20 #PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 #PHP
You might like
详解php中serialize()和unserialize()函数
2017/07/08 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
react 生命周期实例分析
2020/05/18 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
Django框架中的对象列表视图使用示例
2015/07/21 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
为什么要用EJB
2014/04/17 面试题
早读迟到检讨书
2014/01/24 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
爱国演讲稿500字
2014/05/04 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
学习党史心得体会2016
2016/01/23 职场文书
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技