suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Listen Sie alle Ordner, Unterordner und Dateien in einem Verzeichnis mit PHP auf

<p>Bitte geben Sie mir eine Lösung, um alle Ordner, Unterordner und Dateien in einem Verzeichnis mithilfe von PHP aufzulisten. Meine Ordnerstruktur sieht so aus: </p> <pre class="brush:php;toolbar:false;">Hauptverzeichnis Dir1 Unterverzeichnis1 Datei1 Datei2 Unterverzeichnis2 Datei3 Datei4 Dir2 Unterverzeichnis3 Datei5 Datei6 Unterverzeichnis4 Datei7 Datei8</pre> <p>Ich möchte eine Liste aller Dateien in jedem Ordner erhalten. </p> <p><strong>Gibt es einen Shell-Skriptbefehl in PHP? </strong></p>
P粉891237912P粉891237912559 Tage vor806

Antworte allen(2)Ich werde antworten

  • P粉738346380

    P粉7383463802023-08-28 10:34:42

    显示文件夹结构的一种非常简单的方法是使用 RecursiveTreeIterator 类(PHP 5 >= 5.3.0、PHP 7)并生成 ASCII 图形树。

    1

    2

    3

    4

    $it = new RecursiveTreeIterator(new RecursiveDirectoryIterator("/path/to/dir", RecursiveDirectoryIterator::SKIP_DOTS));

    foreach($it as $path) {

      echo $path."<br>";

    }

    http://php.net/manual/en/class.recursivetreeiterator.php< /a>

    通过使用 RecursiveTreeIterator::setPrefixPart 更改前缀,还可以对树的 ASCII 表示进行一些控制,例如 $it->setPrefixPart(RecursiveTreeIterator::PREFIX_LEFT, "| ");

    Antwort
    0
  • P粉482108310

    P粉4821083102023-08-28 00:51:33

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    function listFolderFiles($dir){

        $ffs = scandir($dir);

     

        unset($ffs[array_search('.', $ffs, true)]);

        unset($ffs[array_search('..', $ffs, true)]);

     

        // prevent empty ordered elements

        if (count($ffs) < 1)

            return;

     

        echo '<ol>';

        foreach($ffs as $ff){

            echo '<li>'.$ff;

            if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);

            echo '</li>';

        }

        echo '</ol>';

    }

     

    listFolderFiles('Main Dir');

    Antwort
    0
  • StornierenAntwort