le MEMO du WEB développeur
••• PHP •••  Liste des Mémos, astuces et bonnes pratiques

Parcourir les images d'un répertoire en PHP

La fonction PHP suivante parcourt toutes les images dont l'extension est .gif, .jpg, .jpeg, .png du répertoire passé en paramètre $rep, et les affiche dans une liste à puces.

function ParcourirLesImagesDuReperoire($rep){  
    $Myrep = opendir($rep) or die('Erreur : répertoire non trouvé : '.$rep);
    echo '<ul>';
    while($Entry = @readdir($Myrep)) {
       if(!(is_dir($rep.'/'.$Entry)&& $Entry != '.' && $Entry != '..')) {
            $extension=strtolower(strrchr($Entry,'.'));
            if (in_array ($extension, array ('.gif','.jpg','.jpeg','.png'))){
              echo '<li>'.$Entry.'</li>';
            }
        }
    }
    echo '</ul>';
    closedir($Myrep);  
}

La fonction glob() :

La fonction PHP native glob() parcourt un dossier et stocke dans un tableau les noms des fichiers correspondant au pattern passé en paramètre.

$images=glob('images/*.{jpg,png,gif}', GLOB_BRACE);

$images contiendra le tableau de tous les fichiers d'extension jpg, png, gif présents dans le répertoire "image".

 

Trier les images par date de dernière modification :

Voici le code qui permet de parcourir les fichiers  d'extension jpg, png ou gif du répertoire "images/" en les affichant par ordre de date de dernière modification décroissante.

<?php
$dir = "images/";
chdir($dir);
array_multisort(array_map('filemtime', ($files = glob("*.{jpg,png,gif}", GLOB_BRACE))), SORT_DESC, $files);
foreach($files as $filename)
{
    echo "<li>".substr($filename, 0, -4)."</li>"; 
} 
?>

 

publié le 05/12/2012 par Memo Web
ImagesRépertoire
Commentaire :
Oui il est possible d'afficher les fichiers contenus dans un répertoire en les triant par ordre chronologique. J'ai rajouté le code en fin de mémo.
par tarabusk, le 27/07/2013
Bonjour,

Y aurait-il un moyen pour que l'on affiche les images par ordre de dernière modification ?
par inconnu, le 26/07/2013
Commenter le Mémo :

Afficher l'année courante sur son site
Enlever les balises HTML d'une chaîne en PHP
Foncer ou eclaircir une couleur en PHP
Division en PHP - Partie entière
Comment formater un grand nombre à l'affichage pour le rendre plus lisible (en PHP)
Les cookies faciles
Opérations sur les dates: trouver la date précédente ou suivante d'une date donnée
Problème : header("Location ... ne marche pas
Enlever des mots avec les expressions régulières
Trouver l'adresse d'une image expression régulière
Ajoutez vos propres Mémos sur MEMO-WEB

Il suffit de vous créer un compte sur le site

Vous pourrez choisir un thème parmis l'une des catégories proposées par MEMO-WEB.

Rédigez votre Mémo.
Après validation par MEMO-WEB, il sera mis en ligne.
Ajouter vos Mémos