"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > How to Efficiently Determine if a Directory is Empty in PHP?

How to Efficiently Determine if a Directory is Empty in PHP?

Published on 2024-11-12
Browse:383

How to Efficiently Determine if a Directory is Empty in PHP?

Checking Directory Emptiness in PHP

To verify whether a directory is empty or not, utilizing PHP's functions can be effective. However, it's crucial to select the appropriate function based on specific requirements.

Original Approach and Issue

The provided script uses the glob function to scan a directory. When there are no files present, it should indicate "empty." However, the script incorrectly claims that the directory is empty despite the presence of files and vice versa.

Improved Implementation

To address this issue, consider using the scandir function instead of glob, as glob may overlook hidden files. The improved code below incorporates this change:

Optimal Solution

For greater efficiency, a more optimized solution exists:

function dir_is_empty($dir) {
  $handle = opendir($dir);
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
      closedir($handle);
      return false;
    }
  }
  closedir($handle);
  return true;
}
?>

This function checks the directory handle and directly returns true or false instead of counting files.

Recommendation on Naming Convention

Moreover, it's generally recommended to use boolean values (true or false) instead of string values ("Empty" or "Not empty") in control structures to avoid confusion.

Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3