在PHP 中驗證目錄是否為空
確定目錄是否為空可能是各種Web 開發場景中的一項重要任務。但是,某些腳本可能會遇到問題,即輸出錯誤地建議空或非空目錄,儘管其中存在或不存在檔案。
原始腳本
提供的腳本嘗試使用以下程式碼檢查目錄是否為空:
<code class="php">$q = (count(glob("$dir/*")) === 0) ? 'Empty' : 'Not empty';</code>
但是,glob() 函數可能無法偵測Unix 隱藏文件,從而導致結果不準確。
改進的解決方案
要解決此問題,我們建議使用 scandir() 函數而不是 glob(),因為它可以檢測常規文件和隱藏文件。此外,為了提高效率,我們可以使用自訂函數來更快地檢查是否為空:
<code class="php">function is_dir_empty($dir) { return (count(scandir($dir)) == 2); }</code>
該函數檢查目錄是否只包含兩個條目:當前目錄(“.”)和父目錄目錄(“..”),表示空目錄。
最佳實踐
作為最佳實踐,建議直接在控制結構中使用布林值,而不是而不是依賴「空」或「非空」等文字字串。布林表達式提供了一種更簡潔、準確的方法來判斷空或非空條件。
例如,不用:
<code class="php">if ($q == "Empty") { // ... }</code>
您可以直接使用:
<code class="php">if (is_dir_empty($dir)) { // ... }</code>
以上是## 如何在 PHP 中可靠地確定目錄是否為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!