Lister les fichiers d'un dossier entre deux dates (PHP)

Voici une fonction assez simple mais qui peut se rendre bien utile afin de lister tous les fichiers contenus dans un dossier entre deux dates (ou pas).
De nombreuses améliorations sont possibles comme permettre de lire toute l'arborescence d'un répertoire ou encore ne prendre en compte que certaines extensions.

La fonction retourne un tableau contenant le nom du fichier, son répertoire et la date de modification du fichier en question.

<?php
 
function trier_fichiers_selection($repertoire, $date_debut=0, $date_fin=0)
{
	$listing = array();
 
	if($date_fin < $date_debut OR $date_fin == 0)
		$date_fin = time();
 
	if($handle = opendir($repertoire))
	{
		while(($file = readdir($handle)) !== false)
		{
			if($file != '.' && $file != '..' && is_file($repertoire.'/'.$file))
				if(filemtime($repertoire.'/'.$file) >= $date_debut && filemtime($repertoire.'/'.$file) <= $date_fin)
					$listing[] = array($file, $repertoire.'/'.$file, filemtime($repertoire.'/'.$file));
		}
 
		closedir($handle);
	}
 
	return $listing;
}

Seul le chemin du répertoire est obligatoire, si vous ne renseignez pas les deux autres paramètres, tous les fichiers du répertoire serons listés.

Voici quelques exemple d'utilisation :

<?php
 
# Listing de tous les fichiers du répertoire "upload"
$listing = trier_fichiers_selection('upload');
 
# Listing des fichiers du répertoire upload datant de plus de 1 jour
$listing = trier_fichiers_selection('upload', 0, time()-86400);
 
# Afficher les données de mon tableau
print_r($listing);

N'hésitez pas à me proposer des améliorations wink

Billets relatifs

Ajouter un commentaire





Les commentaires sont validés manuellement afin d'éviter le spam.