Maison  >  Article  >  développement back-end  >  ## Comment déterminer de manière fiable si un répertoire est vide en PHP ?

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

DDD
DDDoriginal
2024-10-25 04:19:29913parcourir

## 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>

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>

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>

Vous pouvez utiliser directement :

<code class="php">if (is_dir_empty($dir)) {
  // ...
}</code>

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!

Déclaration:
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