"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment déterminer efficacement si un répertoire est vide en PHP ?

Comment déterminer efficacement si un répertoire est vide en PHP ?

Publié le 2024-11-12
Parcourir:291

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

Vérification du vide d'un répertoire en PHP

Pour vérifier si un répertoire est vide ou non, l'utilisation des fonctions de PHP peut être efficace. Cependant, il est crucial de sélectionner la fonction appropriée en fonction d'exigences spécifiques.

Approche et problème d'origine

Le script fourni utilise la fonction glob pour analyser un répertoire. Lorsqu'aucun fichier n'est présent, il doit indiquer « vide ». Cependant, le script prétend à tort que le répertoire est vide malgré la présence de fichiers et vice versa.

Implémentation améliorée

Pour résoudre ce problème, envisagez d'utiliser la fonction scandir au lieu de glob, car glob peut ignorer les fichiers cachés. Le code amélioré ci-dessous intègre ce changement :

Solution optimale

Pour une plus grande efficacité, une solution plus optimisée existe :

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

Cette fonction vérifie le handle du répertoire et renvoie directement vrai ou faux au lieu de compter les fichiers.

Recommandation sur la convention de dénomination

De plus, c'est il est généralement recommandé d'utiliser des valeurs booléennes (vrai ou faux) au lieu de valeurs de chaîne (« Vide » ou « Non vide ») dans les structures de contrôle pour éviter toute confusion.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3