"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > ## 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 ?

Publié le 2024-11-08
Parcourir:219

## 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 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)) {
  // ...
}
Dernier tutoriel Plus>

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