Home  >  Article  >  Backend Development  >  **How to Accurately Check if a Directory is Empty in PHP?**

**How to Accurately Check if a Directory is Empty in PHP?**

Patricia Arquette
Patricia ArquetteOriginal
2024-10-24 19:21:02946browse

**How to Accurately Check if a Directory is Empty in PHP?**

PHP: Determining Directory Emptiness

When attempting to check if a directory is empty in PHP, a common issue arises when the directory is incorrectly identified as empty or vice versa, regardless of its actual content.

Utilizing glob() and Scandir

The provided script relies on glob() to assess directory contents. However, glob() has limitations in detecting hidden Unix files, leading to unreliable results. An alternative approach involves using scandir instead, ensuring the inclusion of hidden files.

Optimized Implementation

<code class="php">function is_dir_empty($dir) {
  return (count(scandir($dir)) === 0);
}</code>

This function scans a directory and returns true if it's empty (contains no files except for "." and "..") and false otherwise.

For improved efficiency, consider this alternative:

<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>

This implementation avoids unnecessary directory traversal and immediately returns false upon detecting non-default files.

Avoiding Explicit Assignment

It's unnecessary to assign words to boolean values in your code. PHP boolean values themselves represent empty and non-empty states, so you can use them directly in control structures like if():

<code class="php">if (is_dir_empty($dir)) {
  echo "the folder is empty";
} else {
  echo "the folder is NOT empty";
}</code>

The above is the detailed content of **How to Accurately Check if a Directory is Empty in PHP?**. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn