在PHP 中確定目錄是否為空
您想要使用PHP 檢查目錄是否為空,但目前腳本提供的結果不一致。讓我們檢查問題並探索可靠的解決方案。
您的程式碼使用 glob 來擷取目錄中的檔案。但是,glob 有一個限制:它無法偵測以點開頭的隱藏檔案(例如“.gitignore”)。因此,即使存在隱藏文件,您的腳本也可能將目錄報告為空。
要克服此限制,您可以將 glob 替換為 scandir。 scandir 讀取目錄中的所有文件,包括隱藏文件。您可以如下修改程式碼:
<code class="php">$dir = '/assets/'.$pid.'/v'; if (is_dir_empty($dir)) { echo "the folder is empty"; }else{ echo "the folder is NOT empty"; } function is_dir_empty($dir) { return (count(scandir($dir)) == 2); }</code>
is_dir_empty 函數計算目錄中的檔案數量並與 2(代表「.」和「..」)進行比較。如果計數為 2,則目錄為空。
或者,您可以使用opendir 和readdir 循環遍歷目錄並檢查非隱藏檔案:
<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>
透過使用這些方法,您可以準確地確定目錄是否為空,即使它包含隱藏檔案。此外,請考慮使用布林值而不是單字(「空」或「非空」),以獲得更清晰、更簡潔的程式碼。
以上是PHP中如何準確判斷目錄是否為空,包含隱藏檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!