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实现小型站点广告管理
Oct 09 PHP
PHP4实际应用经验篇(6)
Oct 09 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
php 定界符格式引起的错误
May 24 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
PHP赋值的内部是如何跑的详解
Jan 13 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
PHP使用QR Code生成二维码实例
Jul 07 PHP
微信小程序结合ThinkPHP5授权登陆后获取手机号
Nov 23 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
改造一台复古桌面收音机
2021/03/02 无线电
PHP 常用的header头部定义汇总
2015/06/19 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
JavaScript 学习点滴记录
2009/04/24 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
简短证婚人证婚词
2014/01/09 职场文书
人事代理委托书
2014/09/27 职场文书
交通事故被告代理词
2015/05/23 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
MYSQL 表的全面总结
2021/11/11 MySQL
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android