嘗試在PHP 中檢查目錄是否為空時,會出現一個常見問題:目錄被錯誤地識別為空,反之亦然,無論其實際內容為何。
提供的腳本依賴 glob() 來評估目錄內容。然而,glob() 在偵測隱藏的 Unix 檔案方面有局限性,導致結果不可靠。另一種方法是使用 scandir 來代替,確保包含隱藏檔案。
<code class="php">function is_dir_empty($dir) { return (count(scandir($dir)) === 0); }</code>
此函數掃描目錄,如果目錄為空則回傳true(除了「不包含任何檔案」 ." 和".."),否則為false。
為了提高效率,請考慮以下替代方案:
<code class="php">function dir_is_empty($dir) { $handle = opendir($dir); while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { closedir($handle); return false; } } closedir($handle); return true; }</code>
此實作避免了不必要的目錄遍歷,並在檢測到非預設值時立即返回false
沒有必要在程式碼中將單字指派給布林值。
<code class="php">if (is_dir_empty($dir)) { echo "the folder is empty"; } else { echo "the folder is NOT empty"; }</code>
以上是**如何在PHP中準確檢查目錄是否為空? ** **的詳細內容。更多資訊請關注PHP中文網其他相關文章!