Maison > développement back-end > tutoriel php > Comment déterminer avec précision si un répertoire est vide en PHP, y compris les fichiers cachés ?

Comment déterminer avec précision si un répertoire est vide en PHP, y compris les fichiers cachés ?

DDD
Libérer: 2024-10-24 18:39:02
original
672 Les gens l'ont consulté

How to Accurately Determine if a Directory is Empty in PHP, Including Hidden Files?

Déterminer le vide du répertoire en PHP

Vous souhaitez vérifier si un répertoire est vide à l'aide de PHP mais votre script actuel fournit des résultats incohérents. Examinons le problème et explorons une solution fiable.

Votre code utilise glob pour récupérer les fichiers du répertoire. Cependant, glob a une limitation : il ne peut pas détecter les fichiers cachés commençant par un point (par exemple, ".gitignore"). Par conséquent, votre script peut signaler le répertoire comme vide même si des fichiers cachés sont présents.

Pour surmonter cette limitation, vous pouvez remplacer glob par scandir. scandir lit tous les fichiers d'un répertoire, y compris les fichiers cachés. Vous pouvez modifier votre code comme suit :

<code class="php">$dir = '/assets/'.$pid.'/v';
if (is_dir_empty($dir)) {
  echo "the folder is empty"; 
}else{
  echo "the folder is NOT empty";
}

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

La fonction is_dir_empty compte le nombre de fichiers dans le répertoire et le compare à 2 (représentant "." et ".."). Si le nombre est de 2, le répertoire est vide.

Vous pouvez également utiliser opendir et readdir pour parcourir le répertoire et rechercher les fichiers non cachés :

<code class="php">function dir_is_empty($dir) {
  $handle = opendir($dir);
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
      closedir($handle);
      return false;
    }
  }
  closedir($handle);
  return true;
}</code>
Copier après la connexion

En utilisant ces méthodes, vous pouvez déterminer avec précision si un répertoire est vide, même s'il contient des fichiers cachés. De plus, pensez à utiliser des valeurs booléennes au lieu de mots (« Vide » ou « Non vide ») pour un code plus clair et plus concis.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal