Afficher le contenu d'un repertoire en PHP
Résolusimon -
si vous avez un autre astuce plus simple ça serait mieux, merçi
22 réponses
- 1
- 2
Afficher la liste des fichiers d'un répertoire avec PHP, par exemple un répertoire mp3, sur une page list.php qui affiche le contenu et propose une solution efficace. La solution principale consiste à ouvrir le répertoire avec opendir et à parcourir avec readdir, en séparant fichiers et dossiers puis en les triant avant d'afficher des liens cliquables. En alternative plus simple, on peut utiliser un script minimal qui lit chaque entrée puis affiche le nom du fichier, et on peut restreindre l'affichage à des extensions spécifiques comme HTML. Pour tester et déboguer, un serveur local comme WAMP peut faciliter le développement hors ligne, et vérifier les droits d'accès (CHMOD) peut éviter des blocages d'affichage.
-
tiens, regarde si ca te conviens, j'ai fait ca y'a quelques semaines sur ccm, je retrouve plus la version in line... mais tu auras pas de difficultés à le tester et a le mettre à ta guise :
<?php $dir_nom = '.'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.' --> ('point') $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant $fichier= array(); // on déclare le tableau contenant le nom des fichiers $dossier= array(); // on déclare le tableau contenant le nom des dossiers while($element = readdir($dir)) { if($element != '.' && $element != '..') { if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;} else {$dossier[] = $element;} } } closedir($dir); if(!empty($dossier)) { sort($dossier); // pour le tri croissant, rsort() pour le tri décroissant echo "Liste des dossiers accessibles dans '$dir_nom' : \n\n"; echo "\t\t<ul>\n"; foreach($dossier as $lien){ echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n"; } echo "\t\t</ul>"; } if(!empty($fichier)){ sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant echo "Liste des fichiers/documents accessibles dans '$dir_nom' : \n\n"; echo "\t\t<ul>\n"; foreach($fichier as $lien) { echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n"; } echo "\t\t</ul>"; } ?>-
bonjour,
merci pour ce bout de script, il correspond bien à ce que je recherchais!
parcontre je n'arrive pas à voir comment je pourrait ensuite faire pour supprimer un où plusieurs des fichiers parmis la liste..
avec une case à cocher qui renseigne une fonction ulink mais bon... j'ai pas trop d'idée là...
si qqun à un tuyau c cool.
Merci encore pour la réponse.
bye -
ton code ma bcp servis mais j'ai eu du mal a rajoute une optien pour filré les fichier : commme php ou autre en premier j'utilise ce code :
<?php function listing($repertoire){ $fichier = array(); if (is_dir($repertoire)){ $dir = opendir($repertoire); //ouvre le repertoire courant désigné par la variable while(false!==($file = readdir($dir))){ //on lit tout et on récupere tout les fichiers dans $file if(!in_array($file, array('.','..'))){ //on eleve le parent et le courant '. et ..' $page = $file; //sort l'extension du fichier $page = explode('.', $page); $nb = count($page); $nom_fichier = $page[0]; for ($i = 1; $i < $nb-1; $i++){ $nom_fichier .= '.'.$page[$i]; } if(isset($page[1])){ $ext_fichier = $page[$nb-1]; if(!is_file($file)) { $file = ''.$file; } } else { if(!is_file($file)) { $file = ''.$file; } //on rajoute un "/" devant les dossier pour qu'ils soient triés au début $ext_fichier = ''; } if($ext_fichier != 'php3' and $ext_fichier != 'db' ) { //utile pour exclure certains types de fichiers à ne pas lister array_push($fichier, $file); } } } } natcasesort($fichier); //la fonction natcasesort( ) est la fonction de tri standard sauf qu'elle ignore la casse // et la date du téléchargement foreach($fichier as $value) { echo ' <a href="'.rawurlencode($repertoire).'/'.rawurlencode(str_replace ('/', '', $value)).'" target=\"_blank\">'.$value.'</a> <br />'; } } //exemple d'utilisation : listing('admin/UPLOAD/emploi/upload'); //chemin du dossier ?>
exp
il marché tres bien localement mais une fois que j'ai mis le site sur le serveur j'ai eu des probleme de lien voici donc ce qu'il me donne exp : The requested URL /admin/UPLOAD/emploi/upload/emploi du temsp.pdf was not found on this server.
puis j'ai adopter le tien et les liens marche trés bien apart que cette fois ci il affiche aussi le liens des page web.
-
- 1
- 2