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 相关文章推荐
一个更简单的无限级分类菜单代码
Jan 16 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
基于xcache的配置与使用详解
Jun 18 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
php统计数组元素个数的方法
Jul 02 PHP
php实现网页缓存的工具类分享
Jul 14 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
Feb 15 PHP
PHP7 安装event扩展的实现方法
Oct 08 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/03 冲泡冲煮
JAVA/JSP学习系列之四
2006/10/09 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
Jquery性能优化详解
2014/05/15 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
jquery实现网站列表切换效果的2种方法
2016/08/12 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
Python程序语言快速上手教程
2012/07/18 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
Python3实现转换Image图片格式
2018/06/21 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
python实现人脸签到系统
2020/04/13 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
网络管理员岗位职责
2015/02/12 职场文书
夏洛特的网观后感
2015/06/15 职场文书