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 original fourni Le script tente de vérifier le vide du répertoire en utilisant le code suivant :
$q = (count(glob("$dir/*")) === 0) ? 'Empty' : 'Not empty';
Cependant, la fonction glob() peut ne pas réussir à 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 :
function is_dir_empty($dir) {
return (count(scandir($dir)) == 2);
}
Cette fonction vérifie si le répertoire ne contient que deux entrées : le répertoire courant ("".") et le répertoire parent ("".."), indiquant un répertoire vide.
Bonne pratique
En tant que bonne pratique, il est conseillé d'utiliser des valeurs booléennes directement dans les structures de contrôle 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 :
if ($q == "Empty") {
// ...
}
Vous pouvez utiliser directement :
if (is_dir_empty($dir)) {
// ...
}
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3