Lister le contenu d'un repertoire sur le web
alphon5o
-
Yoan Messages postés 11905 Statut Modérateur -
Yoan Messages postés 11905 Statut Modérateur -
Bonjour,
je souhaiterai obtenir de l'aide pour la realisation d'un listage du contenu d'un repertoire ( de preference en php) comme sur ce exemple https://dept-info.labri.fr/ENSEIGNEMENT/ . merci pour vos contribution .
je souhaiterai obtenir de l'aide pour la realisation d'un listage du contenu d'un repertoire ( de preference en php) comme sur ce exemple https://dept-info.labri.fr/ENSEIGNEMENT/ . merci pour vos contribution .
Configuration: Linux Firefox 3.0.4
1 réponse
-
Voici un truc que j'avais réalisé pour mes besoins personnels. Attention il est probable qu'il ait quelques bugs.
En l'occurrence il gère mal les noms de fichier contenant un point (sauf extension). Il n'y a pas de possibilité de tri. Puis d'autres trucs probablement. Le code est à adapter.
<?php $ndf='index.php'; //Nom de ce script function taille($file) { if(is_dir($file)) { return "Dossier"; break; } else { $taille=filesize($file); if($taille<=1024) return "$taille octets"; elseif($taille<=1024*1024) { $taille=round($taille/1024,2); return "$taille Kio"; } elseif($taille<=(1024^3)) { $taille=round($taille/1024/1024,2); return "$taille Mio"; } else { $taille=round($taille/1024/1024/1024,2); return "$taille Gio"; } } } ?> <html> <head> <title>Index</title> <style> .tableau {border-style:solid; background-color:#EFEFEF; border-width:3px; border-color:#ABCDEF; font-family:verdana, arial, sans-serif; font-size:11px; text-align:center} </style> </head> <body> <table class="tableau" border="1" align="center" width="60%"> <tr><td> Fichier </td><td>Extension</td><td>Poids</td><td>Dernière modification</td></tr> <?php $mois=date("m-Y"); $today=date("d-m-Y",time()); $files=array(); $dir=opendir("."); //Ouvrir le répertoire courant while(false!==($file=readdir($dir))) { $poids=taille($file); //Calculer le poids du fichier courant array_push($files,$file); //Ajouter le fichier courant à la liste de fichiers $lastmod=getlastmod($file); $lastmod=date('M,d Y',$lastmod); if(is_file($file) AND $file!=$ndf) { $expfile=explode('.',$file); //Séparer le nom de fichier de son extension $filename=$expfile[0]; $ext=strtoupper($expfile[1]); echo "<tr><td><a href=\"$file\">$filename</a></td><td>$ext</td><td>$poids</td><td>$lastmod</td></tr>"; } elseif(is_dir($file) AND $file!="." AND $file!="..") //Ne pas rentrer les répertoires courant et parent dans le tableau { $ext="Dossier"; $filename=$file; //Conserve le nom de dossier if(is_dir($file)) $file='./'.$file; //Ajouter un point/slash devant les dossiers echo "<tr><td><a href=\"$file\">$filename</a></td><td>$ext</td><td>$poids</td><td>$lastmod</td></tr>"; } } ?> </table> </body> </html>-
-
Tu veux lister dans la même page tous les fichiers du dossier courant et de ses sous-dossiers ?
Dans ce cas il faut faire de ceci une fonction récursive et rajouter une ou deux instructions pour rappeler la fonction dans le cas d'un dossier.
Je regarderai ça. Mais c'est à dire qu'il y a déjà plein de trucs à corriger là-dedans. -
-
Heu, si tu utilises Apache tu as l'option Indexes qui fait ça très bien.
http://httpd.apache.org/docs/1.3/mod/core.html#directory -
jai visité le site que tu ma proposé. Si je comprend bien il faudrai modifier le fichier de configuration d'apache. mais moi j'ai pas acces a ce fichier mais je pense qu'il serait possible de mettre a la racine de mon site un fichier .htaccess sauf que je ne sais pas comment m'y prendre donc si tas une idée dis moi comment faire svp. merci
-