首頁 > 後端開發 > php教程 > 如何使用 PHP 遞歸列出目錄中的所有檔案和資料夾?

如何使用 PHP 遞歸列出目錄中的所有檔案和資料夾?

Barbara Streisand
發布: 2024-12-02 12:37:17
原創
887 人瀏覽過

How Can I Recursively List All Files and Folders in a Directory Using PHP?

使用 PHP遞歸遍歷目錄和檔案

問:如何使用遞歸列出目錄中的所有檔案和資料夾PHP函數?

A:要遍歷目錄及其子目錄,請依照下列步驟操作:

  1. 定義一個PHP功能:

    function getDirContents($dir, &$results = array()) {
        $files = scandir($dir);
    
        foreach ($files as $key => $value) {
            $path = realpath($dir . DIRECTORY_SEPARATOR . $value);
    
            if (!is_dir($path)) {
                $results[] = $path;
            } else if ($value != "." && $value != "..") {
                getDirContents($path, $results);
                $results[] = $path;
            }
        }
    
        return $results;
    }
    登入後複製
  2. 擷取檔案與資料夾:

    var_dump(getDirContents('/xampp/htdocs/WORK'));
    登入後複製
  3. 輸出:

    輸出將包含指定目錄中所有檔案和資料夾的列表,包括子目錄。

對原始程式碼的改進:

  • 避免無限遞歸:更新的程式碼確保遞歸非根目錄,防止無限循環。
  • 使用 Realpath: realpath() 用來取得專案的真實路徑,解析任何符號連結。
  • 透過引用傳遞結果:結果數組透過引用傳遞,以避免在每次迭代時複製數組,這可以提高表演。

以上是如何使用 PHP 遞歸列出目錄中的所有檔案和資料夾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板