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
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
解析PHP提交后跳转
Jun 23 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
PHP eval函数使用介绍
Dec 08 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
PHP实现链式操作的核心思想
Jun 23 PHP
PHP编程入门的基本语法知识点总结
Jan 26 PHP
php 猴子摘桃的算法
Jun 20 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
Nov 22 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常用代码大全(新手入门必备)
2010/06/29 PHP
PHP输入流php://input介绍
2012/09/18 PHP
php递归调用删除数组空值元素的方法
2015/04/28 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
jquery 回车事件实现代码
2011/08/23 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
Python中字符串对齐方法介绍
2015/05/21 Python
python删除特定文件的方法
2015/07/30 Python
python  logging日志打印过程解析
2019/10/22 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
2014/09/02 HTML / CSS
HTML5通用接口详解
2016/06/12 HTML / CSS
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
UML设计模式笔试题
2014/06/07 面试题
2014年大学宣传部工作总结
2014/12/19 职场文书
投标承诺函格式
2015/01/21 职场文书
创卫工作总结2015
2015/04/22 职场文书
淮海战役观后感
2015/06/11 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
python实现简单聊天功能
2021/07/07 Python