D'abord, il faut que tu saches qu'Apache est trés bien capable de lister le contenu des répertoires.
Mais j'avais un peu de temps ; j'ai fait un petit code du genre de celui qui doit faire tourner le site que tu donnes en exemple. Comme tu dis être débutant j'ai mi beaucoup de commentaires.
Le nom du répertoire est transmis, comme sur le site, par une variable ($patch) dans l'url :
Code :
- if ($dir = @opendir($patch)) { // D'abord, on ouvre le répertoire uniquement s'il existe.
- while($file = readdir($dir)) { // Liste le contenu du répertoire autant de fois qu'il le faut.
- if(is_dir("$patch/$file" )) echo "[DIR]"; // Si le fichier est un répertoire on affiche [DIR] (ou une image, une icone...).
- else { // Si ce n'est pas un répertoire :
- $ext = ereg_replace(".*\.(.*)", "\\1", "$file" ); // On place l'extension du fichier dans $ext.
- switch($ext){ // On regarde ce que contiens $ext.
- case 'jpeg': echo '[JPG]'; break; // Si $ext contien 'jpeg' on affiche [JPG].
- case 'jpg' : echo '[JPG]'; break;
- case 'png' : echo '[PNG]'; break;
- case 'html': echo '[HTM]'; break;
- default : echo '[FIC]'; // par défaut on affiche [FIC].
- }
- $size = ' ('.round((filesize("$patch/$file" ) / 1024), 1).' ko)'; /* Ici on obtient la taille du fichier avec filesize, on divise par 1024 pour obtenir la taille en Ko et on arrondi avec round. Puis on met des parenthèses autour du résultat, et on place le tout dans la variable $size (en une ligne !).*/
- }
- echo " <a href='/&patch=$patch/$file'>$file</a>$size<br>\n"; /* Enfin, on affiche le lien amenant vers le fichier, suivit de $size pour afficher la taille.*/
- }
- closedir($dir); // Ferme le répertoire.
- } else echo "Ce répertoire n'existe pas"; // En cas d'erreur.
|
Ça devrait afficher quelque chose du genre :
Code :
- [DIR] .
- [DIR] ..
- [DIR] .xvpics
- [PNG] html.2.png (58.8 ko)
- [PNG] html.png (1.2 ko)
- [FIC] html.xcf (5.3 ko)
- [PNG] pdf.png (0.4 ko)
- [PNG] txt.png (0.6 ko)
|
En espérant que ça te serves.
a+
Message édité par kalex le 10-11-2002 à 03:40:29