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 .
A voir également:
- Lister le contenu d'un repertoire sur le web
- Web office - Guide
- Creer un site web - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- K9 web protection - Télécharger - Contrôle parental
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.
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>
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.
http://httpd.apache.org/docs/1.3/mod/core.html#directory