Liste repertoire (dir en php)

3/5 (14 avis)

Vue 15 252 fois - Téléchargée 1 303 fois

Description

Liste le contenue d'un répertoire sur serveur web et affiche icones date et taille approprié
Mais il vous faudra ajouter a la racine de votre site un dossier images2 contenant les icônes ...
vous pouvez les telecharger ici :
http://mephistope.homelinux.org/dir.zip

Source / Exemple :


<?
$dater = date("d-m-Y");
$eure = date("H:i");
?>

<html>
<head>
<title>Liste du dossier</title>
<style type="text/css">
<!--
A { color:#330099; text-decoration:none; }
A:hover { color:#009966;text-decoration:underline;}
-->
</style>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#ccccff" alink="#ccccfa" vlink="#FFc00">

<hr>
<table>
<tr><td>  

<table border=1 bgcolor="#7722db">
<tr><td bgcolor="#9999cc">ouverture du repertoire :</td><td bgcolor="#ccccff"> <? echo $SCRIPT_FILENAME ?></td><td bgcolor="#ccccff">
<? echo "$dater"; ?> </td><td bgcolor="#ccccff"> <? echo "$eure"; ?>
<td></tr> 
</table>

</td></tr></table>
<hr>

<br>
<table>
<tr><td> ico</td><td> Nom du fichier </td><td>-= Taille =-</td><td>date</td></tr>
<tr><td><img src="/images2/dir.png"></td><td><a href="../"> Retour </a></td><td>....</td><td>....</td></tr>
<?
$folder = "./";
$dossier = opendir($folder);
while ($Fichier = readdir($dossier)) 
{
	if ($Fichier != "." && $Fichier != "..") 
	{
		// Debut ligne <tr><td>
		echo "<tr>";
		$nomFichier = $Fichier;
		// recherche extention du fichier et affiche icone 
		$extension=strrchr($nomFichier,'.');
		if ($extension=='.gif') echo "<td><img src=\"/images2/gif.png\"></td>";
		else if($extension=='.zip') echo "<td><img src=\"/images2/zip.png\"></td>";
		else if($extension=='.JPG') echo "<td><img src=\"/images2/img.png\"></td>";
		else if($extension=='.php') echo "<td><img src=\"/images2/php.png\"></td>";
		else if($extension=='.txt') echo "<td><img src=\"/images2/txt.png\"></td>";
		else if($extension=='.htm') echo "<td><img src=\"/images2/html.png\"></td>";
		else if($extension=='.doc') echo "<td><img src=\"/images2/0doc.png\"></td>";
		else if($extension=='.DOC') echo "<td><img src=\"/images2/0doc.png\"></td>";
		else if($extension=='.html') echo "<td><img src=\"/images2/html.png\"></td>";
		else if($extension=='.php') echo "<td><img src=\"/images2/html.png\"></td>";
		else if($extension=='.php3') echo "<td><img src=\"/images2/html.png\"></td>";
		else if($extension=='.htm') echo "<td><img src=\"/images2/html.png\"></td>";
		else if($extension=='.mp3') echo "<td><img src=\"/images2/mp3.png\"></td>";
		else if($extension=='.MP3') echo "<td><img src=\"/images2/mp3.png\"></td>";
		else if($extension=='.wav') echo "<td><img src=\"/images2/mp3.png\"></td>";
		else if($extension=='.wma') echo "<td><img src=\"/images2/mp3.png\"></td>";
		else if($extension=='.WMA') echo "<td><img src=\"/images2/mp3.png\"></td>";
		else if($extension=='.xm') echo "<td><img src=\"/images2/mp3.png\"></td>";
		else if($extension=='.mod') echo "<td><img src=\"/images2/mp3.png\"></td>";
		else if($extension=='.cgi') echo "<td><img src=\"/images2/cgi2.png\"></td>";
		else if($extension=='.pl') echo "<td><img src=\"/images2/asp.png\"></td>";
		else if($extension=='.sh') echo "<td><img src=\"/images2/asp.png\"></td>";
		else if($extension=='.wma') echo "<td><img src=\"/images2/anim.png\"></td>";
		else if($extension=='.avi') echo "<td><img src=\"/images2/anim.png\"></td>";
		else if($extension=='.mpg') echo "<td><img src=\"/images2/anim.png\"></td>";
		else if($extension=='.zip') echo "<td><img src=\"/images2/zip.png\"></td>";
		else if($extension=='.rar') echo "<td><img src=\"/images2/zip.png\"></td>";
		else if($extension=='.tar') echo "<td><img src=\"/images2/zip.png\"></td>";
		else if($extension=='.gz') echo "<td><img src=\"/images2/zip.png\"></td>";
		else if($extension=='.gif') echo "<td><img src=\"/images2/img.png\"></td>";
		else if($extension=='.png') echo "<td><img src=\"/images2/img.png\"></td>";
		else if($extension=='.jpg') echo "<td><img src=\"/images2/img.png\"></td>";
		else if($extension=='.pdf') echo "<td><img src=\"/images2/pdf.png\"></td>";
		else if($extension=='.exe') echo "<td><img src=\"/images2/bin.png\"></td>";
		else if($extension=='.bmp' || $extension=='.BMP') echo "<td><img src=\"/images2/img.png\"></td>";
		else if($extension=='.wmv' || $extension=='.WMV') echo "<td><img src=\"/images2/anim.png\"></td>";
		else if($extension=='.') echo "<td><img src=\"/images2/dir.png\"></td>";
		else if($extension=='..') echo "<td><img src=\"/images2/dir.png\"></td>";
		else if($extension=='') echo "<td><img src=\"/images2/dir.png\"></td>";
		else  echo "<td><img src=\"/images2/unkn.png\"></td>";

		// affichage du nom du fichier apres icone	
		echo "<td><a href=\"$nomFichier\">$nomFichier  </a> </td><td> ";
		// verification Taille 
		if (filesize($nomFichier) < 1024 ) 
		{
			echo filesize($nomFichier);
			echo " octet";
		}

		// VERIF KO et calcul
		else if (filesize($nomFichier) > 1024 && filesize($nomFichier) < 1048576 )  
		{
			$koo = filesize($nomFichier) /1024 ;
			echo round($koo, 2);
			echo " Ko";
		}
		// Verif MO
		else if (filesize($nomFichier) > 1048576 )
		{
			$koo = filesize($nomFichier) / 1048576 ;
			echo round($koo, 2);
			echo " Mo";
		}

		echo "</td><td> ";
		// Recuperation de la date formate 
		$dt = date ("d/m/Y", filemtime($nomFichier)) ;
		echo "$dt </td> </tr>";
	}

}
closedir($dossier);
?>
</table>
<center><a href="http://mephistope.homelinux.org/dir.zip" TITLE="TELECHARGER CE SCRIPT">Telecharger ce script</a>
</td></tr>
</table>
<hr>
<script language="javascript" type="text/javascript" src="/js/awstats_misc_tracker.js"></script>
<noscript><img src="/js/awstats_misc_tracker.js?nojs=y" height="0" width="0" border="0" style="display: none"></noscript>
</body>
</html>

Conclusion :


Libre modifiable et pas compliqué a comprendre pour un débutant ...
Ajoutez vos propre extension et l'icône qui va avec ..
Toutes les icones mime type sont la :
http://mephistope.homelinux.org/docu/0000/img/mimetypes16x16/

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_robinou Messages postés 31 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 23:03
je suis une grosse bouse, désolé, tout baigne ... joyeuses fêtes
cs_robinou Messages postés 31 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 22:57
Salut neigedhiver

J'utilise ton code mais erreur si un des répertoires est vide
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
27 mai 2009 à 14:51
Y'a vraiment pas besoin d'autant de lignes de code pour parcourir récursivement un répertoire... Exemple fait à l'arrache (mais qui fonctionne) :

<?php

class MyDir extends RecursiveIteratorIterator {

public function __construct($directory) {
$it = new RecursiveDirectoryIterator($directory);
parent::__construct($it, RecursiveIteratorIterator::SELF_FIRST);
}
}

echo '';
foreach ($oDir = new MyDir('/home/neige/opendev/') as $item) {
echo '<li>', str_repeat('-', $oDir -> getDepth()), $item -> getFilename(), '</li>';
}
echo '';

?>

Après, ça devient intéressant quand on commence à s'intéresser aux filtres et à la mise en forme du bazar produit. Mais la base est là.
seyvapul Messages postés 39 Date d'inscription vendredi 15 juillet 2005 Statut Membre Dernière intervention 4 juin 2017
27 mai 2009 à 14:43
Merci, je vais voir cela très vite, je sens que je vais gagner du temps.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
27 mai 2009 à 14:37
Pour faire un parcours tout simple de répertoires, autant utiliser une classe étendue de DirectoryIterator avec RecursiveDirectoryIterator : c'est toujours plus clair qu'un appel récursif (qui certes fonctionne).

Cf l'excellente source de Malalam : http://www.phpcs.com/codes/PHP5-SMARTDIR-ITERATEURS-PHP-LECTURE-INTELLIGENTE-REPERTOIRE_40393.aspx

Sinon, <ol> c'est bien aussi, pour numéroter les fichiers.
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.