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制作静态网站的模板框架(二)
Oct 09 PHP
笑谈配置,使用Smarty技术
Jan 04 PHP
php 删除记录实现代码
Mar 12 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
Aug 08 PHP
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
把PHP安装为Apache DSO
2006/10/09 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
js中如何完美的解析数据
2018/03/18 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
机电专业个人自荐信格式模板
2013/09/23 职场文书
道路建设实施方案
2014/03/18 职场文书
电视购物广告词
2014/03/19 职场文书
个人课题方案
2014/05/08 职场文书
效能监察建议书
2014/05/19 职场文书
企业标语大全
2014/07/01 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL