c#php列出所选目录中的文件

时间:2016-11-10 02:01:37

标签: php

我刚刚介入了php的东西,执行任何令人困惑的条款

我正在使用以下代码在当前路径上显示文件和目录:

function listFolderFiles($dir){
    $ffs = scandir($dir);
    echo '<ol>';
    foreach($ffs as $ff){
        if($ff != '.' && $ff != '..'){
            echo '<li>'.$ff;
            if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff); //METHOD To List Files In Directory
            echo '</li>';
        }
    }
    echo '</ol>';
}

我将其列为链接echo '<li><a href="">'.$ff.'</a>';

我希望能够获取点击目录的名称并输入它显示任何内容:

  function List($DirectoryName){
      if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
     }

如何在

上单击目录后设法执行此操作并调用此函数

1 个答案:

答案 0 :(得分:0)

您有路径,因此只需url encode it并将其传递给查询字符串href='?dir=$folder'

检查它是否设置,然后使用它,否则默认设置。

<?php
function listFolderFiles($dir){
    // validate or do nothing
    if(is_dir($dir)){
        $ffs = scandir($dir);
        echo '<ol>';
        foreach($ffs as $ff){
            if($ff != '.' && $ff != '..'){
                echo '<li>';

                // conditionally echo link if directory, else just filename
                if(is_dir($dir.'/'.$ff)){
                    $folder = rawurlencode("$dir/$ff");
                    echo "<a href='?dir=$folder'>$ff</a>";

                    // recurse
                    listFolderFiles($dir.'/'.$ff);
                } else {
                    echo $ff;
                }
                echo '</li>';
            }
        }
        echo '</ol>';
    }
}

if(isset($_GET['dir'])){
    $folder = $_GET['dir'];
} else {
    $folder = __DIR__;
}

listFolderFiles($folder);