Php浏览多个目录

时间:2014-07-17 21:20:08

标签: php

使用显示目录

上一篇文章中的代码
<?php 

      $files = array();
      $dir = opendir('races/ob/'); // open the cwd..also do an err check.

      while(false != ($file = readdir($dir))) {
              if(($file != ".") and ($file != "..") and ($file != "index.php")) {
                      $files[] = $file; // put in array.
              }   
      }

      natsort($files); // sort.

      // print.
      foreach($files as $file) {
              echo("<span class='txt-spacing'><a href='$file'>$file</a> <br />\n</>");
    }
?>

我的问题是如何使生成的链接转到服务器上的正确文件路径,然后在新页面中打开并显示所有文件列表,这些文件列表是.txt文件,供用户单击和查看数据。

我的目录结构是这个

     Races
        |
       OldBird
            |
          Clubs Name Listing
              |
            List all .txt files for users to view

1 个答案:

答案 0 :(得分:1)

function scandir_recursive($path)
{
    if ($result = scandir($path))
    {
        $scan = $result = array_filter($result, function ($a) { return !in_array($a, ['.', '..', 'index.php']); });
        foreach ($scan as $sub)
            if (is_dir($subdir = "$path/$sub"))
                if ($dir = scandir_recursive($subdir))
                    $result = array_merge($result, array_map(function ($a) use ($sub) { return "$sub/$a"; }, $dir));
    }
    return $result;
}

$files = scandir_recursive('races/ob');
natsort($files);
foreach ($files as $file)
    echo("<a class='txt-spacing' href='$file'>$file</a><br>\n");