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

 这篇文章主要介绍了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:wampwwwany"); 
 
 
还可以把‘*', 换成 DIRECTORY_SEPARATOR.'*' ,把‘n'换成PHP_EOL ,这样可以跨平台了。
 

时间: 2016-03-21

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

linux-javac为什么不能编译子文件夹的java文件

问题描述 javac为什么不能编译子文件夹的java文件 我在linux终端下编译:javac *.java 网上说这样做不是能编译当前文件夹下面所有的,包括子文件夹里面的java文件吗? 但是为什么我这样做了之后只编译了当前文件夹下面的java文件,子文件夹里面的java文件没有被编译啊 解决方案 因为java文件只会默认寻找当前包下面的java文件!而不会去寻找其子文件夹下的java文件!!如果含有子包的话需要import导入就可以了!!! 解决方案二: 可以试试下面语法: javac **

PHP遍历指定文件夹下的所有文件

PHP遍历指定文件夹下的所有文件,如下代码: <?php   session_start();  if($Submit=="提交"){   $shili=$file_dir;  }  ?>  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  <title>遍历指定目录

PHP遍历某个目录下的所有文件和子文件夹的实现代码

本篇文章是对PHP遍历某个目录下的所有文件和子文件夹的实现代码进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: <?php function read_all_dir ( $dir ) { $result = array(); $handle = opendir($dir); if ( $handle ) { while ( ( $file = readdir ( $handle ) ) !== false ) { if ( $file != '.' && $file

linux shell 遍历指定目录下的所有文件夹

在linux 中,如何遍历指定目录下的所有文件夹呢? 要求能搜索结果中包含隐藏文件夹 脚本名:ergodic_folder.sh 脚本内容: Shell代码   #!/bin/sh   list_alldir(){       for file2 in `ls -a $1`       do           if [ x"$file2" != x"." -a x"$file2" != x".." ];then       

asp.net遍历文件夹下所有子文件夹并绑定到gridview上的方法_实用技巧

遍历文件夹下所有子文件夹,并且遍历配置文件某一节点中所有key,value并且绑定到GridView上 Helper app_Helper = new Helper(); DataSet ds = new DataSet(); DataTable dt = new DataTable(); protected void Page_Load(object sender, EventArgs e) { gvwBind(); } #region 绑定GridView /// <summary> //

在文件数量过多的情况下java怎么获取文件夹下第一个文件并且不使用List遍历

问题描述 在文件数量过多的情况下java怎么获取文件夹下第一个文件并且不使用List遍历 在文件数量过多的情况下java怎么获取文件夹下第一个文件并且不使用List遍历,防止内存溢出 解决方案 你看到的文件夹下面的第一个文件是操作系统的,如果用Java的API取出来,顺序是乱的,而且文件数量过多能多多少呢?上百个.?你可以只遍历文件名 ,或者在取文件的时候对文件进行一个排序,然后在取对应的文件内容. 解决方案二: 在java中如何遍历某个路径下的所有文件夹和文件java遍历文件夹中所有文件jav

C#遍历文件夹下所有xls文件,并把xls文件名,对应xls文件第I列最后一行分别写入新xls表第一列,第二列。

问题描述 如题.请教各位大侠.我想用C#遍历文件夹下所有xls文件,并把xls文件名,对应xls文件第I列最后一行分别写入新xls表第一列,第二列.请问如何实现.本人是新手,最好有详细的答复.不甚感激. 解决方案 解决方案二:取xls文件可用这个:///获取某一扩展名的文件集合///</summary>///<paramname="dictoryName">目录名</param>///<paramname="fiterName&quo

php递归遍历之遍历文件夹下的所有文件和子文件

写一个函数,能够遍历一个文件夹下的所有文件和子文件夹.  代码如下 复制代码 $dirs='e:/pdf';  function FileShow($dirs) {      $dir=opendir($dirs);      while ($f=readdir($dir)) {      if($f != '.' && $f != '..'){      $file=$dirs.'/'.$f;      if(is_file($file)){          echo 'FileNam

算法积累:解决如何获取指定文件夹路径或者文件路径下所有子文件后缀为.h .m .c的文本的行数

1.先解决如何获取一个文件的代码行数 一开始对于这个问题,我的思路就回荡在:1字符串子字符串的判断 2循环直到结束的想法 3将原来是"\n"替换掉之类的想法 一个问题总会有多种解决方案,下面的解决方案来自MJ基础视频里讲过的方案,挺不错的,基本思路是:通过"\n"拆分字符串到OC数组中,最后判断数组的长度即可. 虽然有时候我们可能想不到更好的方法,但是也不能阻拦我们去积累好的方法,所以纪录在此博文中. 学习来自 MJ 的某个基础视频 2.然后进一步考虑一个目录下的所