**Comment vérifier avec précision si un répertoire est vide en PHP ?**

Patricia Arquette
Libérer: 2024-10-24 19:21:02
original
945 Les gens l'ont consulté

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

PHP : Déterminer le vide du répertoire

Lorsque vous essayez de vérifier si un répertoire est vide en PHP, un problème courant survient lorsque le répertoire est incorrectement identifié comme vide ou vice versa , quel que soit son contenu réel.

Utilisation de glob() et Scandir

Le script fourni s'appuie sur glob() pour évaluer le contenu du répertoire. Cependant, glob() a des limites dans la détection des fichiers Unix cachés, ce qui conduit à des résultats peu fiables. Une approche alternative consiste à utiliser scandir à la place, garantissant l'inclusion des fichiers cachés.

Implémentation optimisée

<code class="php">function is_dir_empty($dir) {
  return (count(scandir($dir)) === 0);
}</code>
Copier après la connexion

Cette fonction analyse un répertoire et renvoie vrai s'il est vide (ne contient aucun fichier à l'exception de " .." et "..") et false dans le cas contraire.

Pour une efficacité améliorée, envisagez cette 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>
Copier après la connexion

Cette implémentation évite la traversée inutile de répertoires et renvoie immédiatement false lors de la détection d'une valeur autre que celle par défaut. fichiers.

Éviter les affectations explicites

Il n'est pas nécessaire d'attribuer des mots à des valeurs booléennes dans votre code. Les valeurs booléennes PHP elles-mêmes représentent des états vides et non vides, vous pouvez donc les utiliser directement dans des structures de contrôle comme if() :

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

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!