首頁 >後端開發 >php教程 >為什麼我的 PHP 目錄清單回傳「1」而不是檔名?

為什麼我的 PHP 目錄清單回傳「1」而不是檔名?

Susan Sarandon
Susan Sarandon原創
2024-12-05 06:39:15633瀏覽

Why Does My PHP Directory Listing Return

在 PHP 中從目錄擷取檔案名稱

在 PHP 中,取得目錄中的檔案名稱可能是一項簡單的任務。但是,您可能會遇到一個問題,即您提供的程式碼返回“1”而不是檔案名稱。

讓我們深入研究程式碼:

if (is_dir($log_directory)) {
    if ($handle = opendir($log_directory)) {
        while($file = readdir($handle) !== FALSE) {
            $results_array[] = $file;
        }
        closedir($handle);
    }
}

在此程式碼中,您正在嘗試使用 opendir() 和 readdir() 從目錄中讀取檔案。雖然這種方法在許多情況下都有效,但它可能不會總是正確顯示檔案名稱。

解決方案:利用 glob() 進行檔案擷取

而不是使用 opendir( ) 和 readdir(),請考慮利用 glob() 函數。它提供了一種更有效的方法來檢索目錄中的檔案清單:

foreach(glob($log_directory.'/*.*') as $file) {
    ...
}

在此程式碼中,glob() 將在$log_directory 中搜尋具有任何檔案副檔名(*.*)的所有文件。它傳回一個包含找到的檔案的完整路徑的陣列。

透過迭代從 glob() 獲得的數組,您可以存取每個檔案的完整路徑,包括其名稱。此方法消除了取得「1」作為檔案名稱的問題,為您提供目錄中的實際檔案名稱。

以上是為什麼我的 PHP 目錄清單回傳「1」而不是檔名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn