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写的小东西
Dec 06 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
基于PHP静态类的原罪详解
May 06 PHP
php读取mysql的简单实例
Jan 15 PHP
php实现上传图片生成缩略图示例
Apr 13 PHP
php字符串分割函数用法实例
Mar 17 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
php反射类ReflectionClass用法分析
May 12 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 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
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
php分页代码学习示例分享
2014/02/20 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
PHP crc32()函数讲解
2019/02/14 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
python操作日期和时间的方法
2014/03/11 Python
Python利用ansible分发处理任务
2015/08/04 Python
python实现汽车管理系统
2018/11/30 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
pytorch SENet实现案例
2020/06/24 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
咖啡馆创业计划书
2014/01/26 职场文书
材料员岗位职责范本
2015/04/11 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript