## Comment déterminer de manière fiable si un répertoire est vide en PHP ?

DDD
Libérer: 2024-10-25 04:19:29
original
912 Les gens l'ont consulté

## How to Reliably Determine if a Directory is Empty in PHP?

Vérification du vide du répertoire en PHP

Déterminer si un répertoire est vide peut être une tâche vitale dans divers scénarios de développement Web. Cependant, certains scripts peuvent rencontrer des problèmes où la sortie suggère de manière incorrecte un répertoire vide ou non vide malgré la présence ou l'absence de fichiers à l'intérieur.

Script original

Le script fourni Le script tente de vérifier le vide du répertoire à l'aide du code suivant :

<code class="php">$q = (count(glob("$dir/*")) === 0) ? 'Empty' : 'Not empty';</code>
Copier après la connexion

Cependant, la fonction glob() peut ne pas détecter les fichiers cachés Unix, ce qui entraîne des résultats inexacts.

Solution améliorée

Pour résoudre ce problème, nous vous recommandons d'utiliser la fonction scandir() au lieu de glob(), car elle peut détecter à la fois les fichiers normaux et cachés. De plus, pour améliorer l'efficacité, nous pouvons utiliser une fonction personnalisée pour vérifier le vide plus rapidement :

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

Cette fonction vérifie si le répertoire ne contient que deux entrées : le répertoire actuel ("".") et le parent répertoire (".."), indiquant un répertoire vide.

Bonne pratique

Comme bonne pratique, il est conseillé d'utiliser les valeurs booléennes directement dans les structures de contrôle plutôt plutôt que de s'appuyer sur des chaînes de texte telles que « Vide » ou « Pas vide ». Les expressions booléennes offrent un moyen plus concis et précis de déterminer des conditions vides ou non vides.

Par exemple, au lieu d'utiliser :

<code class="php">if ($q == "Empty") {
  // ...
}</code>
Copier après la connexion

Vous pouvez utiliser directement :

<code class="php">if (is_dir_empty($dir)) {
  // ...
}</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!