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

Linda Hamilton
Libérer: 2024-10-24 17:36:17
original
597 Les gens l'ont consulté

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

Vérification du vide du 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 originaux

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, pensez à 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 :

<code class="php"><?php
$pid = basename($_GET["prodref"]); // Sanitize input
$dir = "/assets/$pid/v";

if (is_dir_empty($dir)) {
  echo "the folder is empty";
}else{
  echo "the folder is NOT empty";
}

function is_dir_empty($dir) {
  return (count(scandir($dir)) == 2); // Check for only"." and ".."
}
?></code>
Copier après la connexion

Solution optimale

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

<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>
Copier après la connexion

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

Recommandation sur la convention de dénomination

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!