搜尋

首頁  >  問答  >  主體

使用php列出目錄中的所有資料夾子資料夾和文件

<p>請給我一個使用 php 列出目錄中所有資料夾、子資料夾、檔案的解決方案。我的資料夾結構是這樣的:</p> <pre class="brush:php;toolbar:false;">Main Dir Dir1 SubDir1 File1 File2 SubDir2 File3 File4 Dir2 SubDir3 File5 File6 SubDir4 File7 File8</pre> <p>我想取得每個資料夾內所有文件的清單。 </p> <p><strong>php中有shell腳本指令嗎? </strong></p>
P粉891237912P粉891237912500 天前635

全部回覆(2)我來回復

  • P粉738346380

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

    顯示資料夾結構的一個非常簡單的方法是使用 RecursiveTreeIterator 類別(PHP 5 >= 5.3.0、PHP 7)並產生 ASCII 圖形樹。

    $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, "| ");

    回覆
    0
  • P粉482108310

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

    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');
    

    回覆
    0
  • 取消回覆