php遍历文件夹下的所有文件和子文件夹示例

 更新时间:2014年03月20日 11:27:08   作者:  
这篇文章主要介绍了php遍历文件夹下的所有文件和子文件夹示例,这里提供二个方法,需要的朋友可以参考下

遍历目录,结果存入数组。支持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+iframe图片上传实现即时刷新效果

    PHP+iframe图片上传实现即时刷新效果

    下面小编就为大家带来一篇PHP+iframe图片上传实现即时刷新效果。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Yii2中的场景(scenario)和验证规则(rule)详解

    Yii2中的场景(scenario)和验证规则(rule)详解

    Yii2的rule用于对模型属性进行验证,scenario用户定义不同场景下需要验证的模型,下面这篇文章主要给大家介绍了关于Yii2中场景(scenario)和验证规则(rule)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2018-01-01
  • ThinkPHP模板比较标签用法详解

    ThinkPHP模板比较标签用法详解

    这篇文章主要介绍了ThinkPHP模板比较标签用法,在模板制作的过程中非常实用,需要的朋友可以参考下
    2014-06-06
  • Laravel框架使用Redis的方法详解

    Laravel框架使用Redis的方法详解

    这篇文章主要介绍了Laravel框架使用Redis的方法,结合实例形式较为详细的分析了Laravel框架中Redis数据库配置、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-05-05
  • 浅析PHP文件下载原理

    浅析PHP文件下载原理

    这篇文章主要介绍了浅析PHP文件下载原理,需要的朋友可以参考下
    2014-12-12
  • PHP进程同步代码实例

    PHP进程同步代码实例

    这篇文章主要介绍了PHP进程同步代码实例,本文直接给出实现代码,需要的朋友可以参考下
    2015-02-02
  • smarty模板中使用get、post、request、cookies、session变量的方法

    smarty模板中使用get、post、request、cookies、session变量的方法

    这篇文章主要介绍了smarty模板中使用get、post、request、cookies、session变量的方法,需要的朋友可以参考下
    2014-04-04
  • 通过源码解析Laravel的依赖注入

    通过源码解析Laravel的依赖注入

    这篇文章主要给大家介绍了如何通过源码解析Laravel的依赖注入的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • ThinkPHP5.1+Ajax实现的无刷新分页功能示例

    ThinkPHP5.1+Ajax实现的无刷新分页功能示例

    这篇文章主要介绍了ThinkPHP5.1+Ajax实现的无刷新分页功能,结合实例形式详细分析了ThinkPHP5.1+Ajax无刷新分页具体原理、前台数据发送与后台处理相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • Laravel5.1 框架响应基本用法实例分析

    Laravel5.1 框架响应基本用法实例分析

    这篇文章主要介绍了Laravel5.1 框架响应基本用法,结合实例形式分析了laravel5.1框架基本响应、自定义响应头、返回值、重定向等相关使用技巧,需要的朋友可以参考下
    2020-01-01

最新评论