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速度全攻略
Oct 09 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
php实现无限级分类
Dec 24 PHP
浅谈php中include文件变量作用域
Jun 18 PHP
php实现统计二进制中1的个数算法示例
Jan 23 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 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实现的限制IP投票程序IP来源分析
2016/05/04 PHP
php组合排序简单实现方法
2016/10/15 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
Python实现登录接口的示例代码
2017/07/21 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Python tkinter模版代码实例
2020/02/05 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
python3.7调试的实例方法
2020/07/21 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
Python 里最强的地图绘制神器
2021/03/01 Python
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
应届毕业生求职信范文分享
2013/12/26 职场文书
员工安全承诺书
2014/05/22 职场文书
大学生学习面向未来的赶考思想汇报
2014/09/12 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
2014年个人售房协议书
2014/10/30 职场文书
会计实训总结范文
2015/08/03 职场文书
2015年店长个人工作总结
2015/10/23 职场文书