Liste repertoire (dir en php)

Soyez le premier à donner votre avis sur cette source.

Vue 13 774 fois - Téléchargée 1 254 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
Messages postés
31
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
22 décembre 2009

je suis une grosse bouse, désolé, tout baigne ... joyeuses fêtes
Messages postés
31
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
22 décembre 2009

Salut neigedhiver

J'utilise ton code mais erreur si un des répertoires est vide
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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à.
Messages postés
39
Date d'inscription
vendredi 15 juillet 2005
Statut
Membre
Dernière intervention
4 juin 2017

Merci, je vais voir cela très vite, je sens que je vais gagner du temps.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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.