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!