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 相关文章推荐
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
基于php上传图片重命名的6种解决方法的详细介绍
Apr 28 PHP
PHP Session 变量的使用方法详解与实例代码
Sep 11 PHP
php站内搜索关键词变亮的实现方法
Dec 30 PHP
PHP中COOKIES使用示例
Jul 26 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 PHP
详解json在php中的应用
Sep 30 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
php的扩展写法总结
May 14 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 PHP
php的单例模式及应用场景详解
Feb 27 PHP
php双向队列实例讲解
Nov 17 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
德生PL990的分析评价
2021/03/02 无线电
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
php简单复制文件的方法
2016/05/09 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
2016/01/12 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
Python编写一个优美的下载器
2018/04/15 Python
python的常用模块之collections模块详解
2018/12/06 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
工商管理系学生的自我评价分享
2013/11/29 职场文书
大学总结自我鉴定
2014/01/18 职场文书
护士自我评价范文
2014/01/25 职场文书
关于安全的演讲稿
2014/05/09 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
高中班主任评语
2014/12/30 职场文书
工作保证书
2015/01/17 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
vue使用echarts实现折线图
2022/03/21 Vue.js
python中pycryto实现数据加密
2022/04/29 Python