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函数 serialize()和unserialize()
Feb 04 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
smarty模板引擎之内建函数用法
Mar 30 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
10个超级有用的PHP代码片段果断收藏
Sep 23 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
实例解析php的数据类型
Oct 24 PHP
php测试kafka项目示例
Feb 06 PHP
PHP实现简单的计算器
Aug 28 PHP
详解使用php-cs-fixer格式化代码
Sep 16 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
Window下PHP三种运行方式图文详解
2013/06/11 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
Python入门教程之运算符与控制流
2016/08/17 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
关于python多重赋值的小问题
2019/04/17 Python
python输入错误后删除的方法
2019/10/12 Python
乡镇消防工作实施方案
2014/03/27 职场文书
白血病募捐倡议书
2014/05/14 职场文书
征兵宣传标语
2014/06/20 职场文书
求职自我推荐信
2015/03/24 职场文书
民事答辩状范本
2015/05/21 职场文书
六一亲子活动感想
2015/08/07 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
vscode内网访问服务器的方法
2022/06/28 Servers