Comment lister et afficher les images d'un dossier en PHP ?

Réponses rédigées par Antoine
Dernière mise à jour : 2021-05-13 13:23:59
Thèmes : php - images
Question

Comment puis-je lister et afficher toutes les images qui sont contenues dans un dossier en PHP ?

Réponse

Pour lister et afficher les images d'un dossier en PHP, vous devez effectuer les opérations suivantes :

  • Vérifier que le dossier est bel et bien un répertoire avec la fonction is_dir().
  • Vérifier que le dossier est accessible et l'ouvrir avec la fonction opendir().
  • Parcourir le contenu du dossier avec la fonction readdir().
  • Exclure les arguments . et .. pour éviter que le script puisse changer de dossier.
  • Vérifier que les fichiers sont des images avec les fonctions finfo_open() et finfo_file().
  • Fermer le dossier avec la fonction closedir().

Voici en exemple un script PHP qui liste et affiche toutes images contenues dans un dossier nommé "test" :

<?php
function lister_images($repertoire){  
 if(is_dir($repertoire)){  
   if($iteration = opendir($repertoire)){  
     while(($fichier = readdir($iteration)) !== false){  
       if($fichier != "." && $fichier != ".."){ 
          $fichier_info = finfo_open(FILEINFO_MIME_TYPE);
          $mime_type = finfo_file($fichier_info, $repertoire.$fichier);
           if(strpos($mime_type, 'image/') === 0){
             echo '<img src="'.$repertoire.$fichier.'" alt="">';
           }
        }  
     }  
     closedir($iteration);  
   }  
 }  
} 
lister_images("test/");
?>