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 手机归属地查询 api
Feb 08 PHP
用mysql_fetch_array()获取当前行数据的方法详解
Jun 05 PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
php实现的简单日志写入函数
Mar 31 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
Laravel多域名下字段验证的方法
Apr 04 PHP
PHP数组对象与Json转换操作实例分析
Oct 22 PHP
php封装的page分页类完整实例代码
Feb 01 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 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 项目的方法
2007/01/02 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
javascript动画效果类封装代码
2007/08/28 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
javascript 多浏览器 事件大全
2010/03/23 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
几种响应式文字详解
2017/05/19 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
Python常用列表数据结构小结
2014/08/06 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
没编程基础可以学python吗
2020/06/17 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
比较基础的php面试题及答案-编程题
2012/10/14 面试题
教师实习的自我鉴定
2013/10/26 职场文书
行政办公员自我评价分享
2013/12/14 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
Vue接口封装的完整步骤记录
2021/05/14 Vue.js