TUTOS.EU

Lister les fichiers d'un répertoire

Comment lister les fichiers d'un répertoire en PHP

Code de base

<!DOCTYPE html>
<HTML lang="fr">
	<HEAD>
		<meta charset="utf-8" />
	</HEAD>

	<BODY>

		<div id="bloc_page">
		<?php
			//Liste les fichiers d'un répertoire
			$folderpath = "./monrepertoire/";

			if (file_exists($folderpath) && is_dir($folderpath)) {
				$PointeurVersRepertoire = opendir($folderpath);
				while (($file = readdir($PointeurVersRepertoire)) !== false ) //Lecture d une entree du repertoire
				{
					// enleve les fichiers . et .. et index.php et .htaccess et les répertoires
					if ($file != '.' && $file != '..' && $file != 'index.php' && $file != '.htaccess' && !is_dir($file))
					{
						echo $file."<br />\n";
					}
				}
				closedir($PointeurVersRepertoire);
			}
			else{echo "Le répertoire $folderpath n'existe pas ou ce n'est pas un répertoire.";}
		?>

		</div> <!-- div bloc_page -->
	</BODY>

</HTML>
Lien vers le fichier : cliquez ici

Version plus évoluée avec tri.
Se base sur une fonction.

<!DOCTYPE html>
<HTML lang="fr">
	<HEAD>
		<meta charset="utf-8" />
	</HEAD>

	<BODY>

		<div id="bloc_page">
		<?php
			//Version du 13 juillet 2014
			//Nécessite la création d'une fonction GetFilesInDir pour plus de facilité.

			//Lister les fichiers d'un répertoire (et uniquement les fichiers
			echo "Liste des fichiers du répertoire :<br />\n";
			$folderpath = "./monrepertoire/";
			if (file_exists($folderpath) && is_dir($folderpath)) {
				$MesFichiers = GetFilesInDir($folderpath,0);
				$i=0;
				while ( $i < count($MesFichiers))
				{
					//echo htmlentities($MesFichiers[$i])."<br />\n";
					echo htmlentities($MesFichiers[$i]);
					echo "<br />\n";
					$i++;
				}
			}
			else{echo "Le répertoire $folderpath n'existe pas ou ce n'est pas un répertoire.";}
			
			function GetFilesInDir($folderpath, $debugmode)
			{
				//Version du 13 juillet 2014
				// Lister un repertoire par ordre alphabétique avec la fonction readdir()
				// Code qui passe sur tous les serveurs

				//Exemple d'utilisation
				// $MesFichiers = GetFilesInDir('.',0)
				// $i=0;
				// while ( $i < count($MesFichiers))
				// {
					// echo $MesFichiers[$i].'<br />';
					// $i++;
				// }

				
				// ouvre le rep
				if (is_dir($folderpath)) {
					$PointeurVersRepertoire = opendir($folderpath);
					$i=0;
					while (($file = readdir($PointeurVersRepertoire)) !== false ) //Lecture d une entree du repertoire
					{
						// enleve les fichiers . et .. et index.php et .htaccess et les répertoires
						if ($file != '.' && $file != '..' && $file != 'index.php' && $file != '.htaccess' && !is_dir($file))
						{
							// on passe les datas dans un tableau
							$ListFiles[$i]=$file;
							$i++;
						}
					}
					closedir($PointeurVersRepertoire);
				}

				// tri par ordre decroissant
				if(count($ListFiles)!=0)
				{
					if($list_tri == 'DESC')
					{
						rsort($ListFiles);
					}
					else
					{
						sort($ListFiles, SORT_NATURAL | SORT_FLAG_CASE);
					}
				}
				return $ListFiles;
			}

		?>

		</div> <!-- div bloc_page -->
	</BODY>

</HTML>
Lien vers le fichier : cliquez ici

Pages Web

Site WebDescription
readdir sur PHP.netLa fonction readdir sur PHP.net

Article(s) précédent(s)