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 相关文章推荐
html中select语句读取mysql表中内容
Oct 09 PHP
php md5下16位和32位的实现代码
Apr 09 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
使用session判断用户登录用户权限(超简单)
Jun 08 PHP
php curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
php实现有趣的人品测试程序实例
Jun 08 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
Yii2前后台分离及migrate使用(七)
May 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
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
javascript鼠标滑过显示二级菜单特效
2020/11/18 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
[02:57]2014DOTA2国际邀请赛-观众采访
2014/07/19 DOTA
python合并同类型excel表格的方法
2018/04/01 Python
python实现证件照换底功能
2019/08/20 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
高三历史教学反思
2014/01/09 职场文书
考试违纪检讨书
2014/02/02 职场文书
努力学习演讲稿
2014/05/10 职场文书
2014年度党员自我评议
2014/09/13 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
党员对照检查材料
2014/09/22 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
学校师德师风整改措施
2014/10/27 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技