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 相关文章推荐
用 PHP5 轻松解析 XML
Dec 04 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
Jul 22 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
Apr 15 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 PHP
Laravel Eloquent ORM 多条件查询的例子
Oct 10 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 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生成略缩图代码
2012/07/16 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
Python多进程编程技术实例分析
2014/09/16 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
django使用多个数据库的方法实例
2021/03/04 Python
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
几个MySql的面试题
2013/04/22 面试题
2013年学期结束动员演讲稿
2014/01/07 职场文书
三年大学自我鉴定
2014/01/16 职场文书
高中语文教学反思
2014/01/16 职场文书
岗位职责风险防控
2014/02/18 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
简易版租房协议书范本
2014/10/13 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
先进基层党组织材料
2014/12/25 职场文书
2016大一新生军训感言
2015/12/08 职场文书