首頁 > 後端開發 > php教程 > 如何在 PHP 中遞歸查找檔案和資料夾而不出現效能問題?

如何在 PHP 中遞歸查找檔案和資料夾而不出現效能問題?

Linda Hamilton
發布: 2024-11-25 21:17:27
原創
154 人瀏覽過

How Can I Recursively Find Files and Folders in PHP Without Performance Issues?

使用 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;
}
登入後複製

排除「.」和「. .”

我們加入了排除「.」的條件。和來自遞歸呼叫的“..”目錄。這些目錄分別代表目前目錄和父目錄,包含它們將建立無限循環。

用法

要使用該函數,只需提供指向該函數的路徑即可您想要遍歷的目錄:

var_dump(getDirContents('/xampp/htdocs/WORK'));
登入後複製

此程式碼將傳回一個數組,其中包含指定目錄中的檔案和資料夾的完整清單。每個條目都是檔案或資料夾的完整路徑。

以上是如何在 PHP 中遞歸查找檔案和資料夾而不出現效能問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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