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 ,这样可以跨平台了。