当前位置:首页 > PHP教程 > php文件操作 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2020-11-01 21:59:10 浏览: 评论:0 

这篇文章主要介绍了php遍历文件夹下的所有文件和子文件夹示例,这里提供二个方法,需要的朋友可以参考下。

遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环,代码如下:

  1. <?php 
  2. /** 
  3. * @param string $dir 
  4. * @return array 
  5. */ 
  6. function my_scandir($dir
  7.  $files = array(); 
  8.  if ( $handle = opendir($dir) ) { 
  9.   while ( ($file = readdir($handle)) !== false )  
  10.   { 
  11.    if ( $file != ".." && $file != "." )  
  12.    { 
  13.     if ( is_dir($dir . "/" . $file) )  
  14.     { 
  15.      $files[$file] = my_scandir($dir . "/" . $file); 
  16.     } 
  17.     else  
  18.     { 
  19.      $files[] = $file
  20.     } 
  21.    } 
  22.   } 
  23.   closedir($handle); 
  24.   return $files
  25.  } 
  26.  
  27. function my_scandir1($dir
  28.  $files = array(); 
  29.  $dir_list = scandir($dir); 
  30.  foreach($dir_list as $file
  31.  { 
  32.   if ( $file != ".." && $file != "." )  
  33.   { 
  34.    if ( is_dir($dir . "/" . $file) )  
  35.    { 
  36.     $files[$file] = my_scandir1($dir . "/" . $file); 
  37.    } 
  38.    else  
  39.    { 
  40.     $files[] = $file
  41.    } 
  42.   } 
  43.  } 
  44.  
  45.  return $files
  46.  
  47. $result = my_scandir('./'); 
  48. $result = my_scandir1('./'); 
  49. ?> 

另一个实现方法,代码如下:

  1. function fetchDir($dir) {  
  2.         foreach(glob($dir.'\*'as $file) {  
  3.             echo $file,"\n";  
  4.             if(is_dir($file)) {  
  5.                 fetchDir($file);  
  6.             }  
  7.         }  
  8.     }  
  9.     fetchDir("D:\wamp\www\any");  

还可以把‘\*', 换成 DIRECTORY_SEPARATOR.'*' ,把‘\n'换成PHP_EOL ,这样可以跨平台了。

Tags: php遍历文件夹

分享到: