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 相关文章推荐
人大复印资料处理程序_补充篇
Oct 09 PHP
php 动态添加记录
Mar 10 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
php页面防重复提交方法总结
Nov 25 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
PHP内置函数生成随机数实例
Jan 18 PHP
php+js实现的无刷新下载文件功能示例
Aug 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
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
javascript截取字符串小结
2015/04/28 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
Python中datetime模块参考手册
2017/01/13 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
COS美国官网:知名服装品牌
2019/04/08 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
军人违纪检讨书
2014/02/04 职场文书
后勤个人工作总结
2015/02/28 职场文书
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
使用Ajax实现无刷新上传文件
2022/04/12 Javascript
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技