首頁  >  文章  >  後端開發  >  ## 如何在 PHP 中可靠地確定目錄是否為空?

## 如何在 PHP 中可靠地確定目錄是否為空?

DDD
DDD原創
2024-10-25 04:19:29913瀏覽

## How to Reliably Determine if a Directory is Empty in PHP?

在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中文網其他相關文章!

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