列出目录后的Php显示文件(第2部分)

时间:2014-07-22 03:01:47

标签: php arrays directory

这是我上一个问题的第二部分,得到了回答Php Browsing Multiple Directories

现在我已经完成了脚本读取目录,是否可以将文件列表的结果加载到像races.php这样的新页面中,并且#34;漂亮起来"

以下是列出文件Example of Files being listed from server的方式 我真的希望将其显示在网站内部而不是跳到apache服务器列表中,以便更加用户友好。

修改 我认为我在理论上试图做的是,一旦脚本扫描了dir,它就把它放入一个名为$ files的数组中,然后我将它循环到所有文件夹但是我现在卡住的地方是我怎么做的将该$文件传递到新页面?并使其显示文件夹内的内容:)

再次感谢对不起超级新手在这里学习!


脚本文件生成列表并单击每个文件内的文件:

<?php 

      $files = array();
     $dir = opendir('races/ob/'); 
      // $dir = opendir('races/ob/');

      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='races/ob/$file'>$file</a> <br />\n</>");
      }


     ?>

2 个答案:

答案 0 :(得分:0)

简单的功能可以为你做所有事情

scandir(<path>);

它将为您提供目录中所有文件的列表。

答案 1 :(得分:0)

我在朋友的帮助下想出了我的问题。我希望其他人可以用它来帮助社区。

1)首先要列出index.php上的文件目录

2)用户点击生成的文件夹后,进入races.php并显示单击文件夹中列出的文件的结果。

以下是通过在URL

中传递参数来完成的工作

index.php

<?php 

             $files = array();
             $dir = opendir('races/ob/'); 

             // $dir = opendir('races/ob/');
                        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) {

                          $url  = "races/ob/$file";

                          $path = urlencode($url);

                           echo("<span class='txt-spacing'>
                             <a href='races.php?race=$path'>$file</a> <br />\n</>");
                        }


                       ?>

races.php

<?php

      $path = $_GET['race'];


      // right here, you need the path prefix

      $path = '/public_html' . urldecode($path); //SERVER PATH


      // above here you need it

      $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);

      $fileData = array();

      foreach($objects as $name => $object){

        $fileinfo = pathinfo($name);

        if (!is_dir($name) && isset($fileinfo['extension'])) {

         $file = $fileinfo['basename'];


         $fileData[] = $file;

        } 

      }

&GT;

          <?php foreach($fileData as $file): ?>

           <a target = '_blank' href="http://crpu.ca<?php echo urldecode($_GET['race'])                   . '/' . $file; ?>"><?php echo "$file<br>"; ?></a>
          <?php endforeach; ?>