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 相关文章推荐
通过文字传递创建的图形按钮
Oct 09 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
php实现mysql数据库连接操作及用户管理
Nov 08 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
php array_pop 删除数组最后一个元素实例
Nov 02 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 PHP
php验证码生成器
May 24 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
详解PHP发送邮件知识点
May 06 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
yii2 上传图片的示例代码
Nov 02 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
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
js 数据类型转换总结笔记
2011/01/17 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
python安装pil库方法及代码
2019/06/25 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
Python timeit模块的使用实践
2020/01/13 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
单方离婚协议书范本2014
2014/10/28 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
mysql主从复制的实现步骤
2021/10/24 MySQL
Java8中Stream的一些神操作
2021/11/02 Java/Android
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js