Lister le contenu de plusieurs répertoires

Fermé
np.encbw Messages postés 3 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 12 novembre 2015 - Modifié par jordane45 le 12/11/2015 à 17:55
jordane45 Messages postés 38441 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 février 2025 - 12 nov. 2015 à 19:32
Bonjour,


Débutant en PHP, je cherche tout simplement à afficher la liste des fichiers de plusieurs répertoires ainsi que le nom de chaque répertoire.
Je souhaiterais que la liste affichée (sous forme de tableau, par exemple, puisse permettre aux visiteurs de charger les fichiers (doc, docx ou PDF).
Le code actuellement trouvé (voir ci-dessous) me permet d'afficher la liste des fichiers sans que la présentation soit soignée et les noms des fichiers n'ont pas la forme d'un lien.
Merci pour l'aide que vous pourrez me fournir.
<?php

header('Content-type: text/plain'); 
$themedir = __DIR__; 
$iterator = new RecursiveDirectoryIterator($themedir, FilesystemIterator::SKIP_DOTS); 
foreach(new RecursiveIteratorIterator($iterator) as $file) {
  echo $file->getfilename()."\n";
}

?>


EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

jordane45 Messages postés 38441 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 février 2025 4 737
Modifié par jordane45 le 12/11/2015 à 17:59
Bonjour,

Ta question relève du b.a.ba du dev web .. à savoir .. le HTML (et éventuellement du CSS).

Pour ce qui est des liens.. il te suffit d'utiliser les balises
 <a href='le lien'>texte du lien </a>'


Pour la présentation façon "tableaux" .. il te sufft de regarder les balises <table>

Par exemple :

<table name='mon_tableau'>
<thead>
 <tr>
   <th>Titre colonne 1 </th>
   <th>Titre colonne 2 </th>
 </tr>
</thead>
 <tbody>
 <tr>
  <td> cellule 1</td>
  <td> cellule 2</td>
 </tr>
 </tbody>
</table>


Plus d'infos ici : https://www.commentcamarche.net/contents/504-tableau-html-table





Cordialement,
Jordane
0
np.encbw Messages postés 3 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 12 novembre 2015
12 nov. 2015 à 18:08
Merci pour cette réponse.
Effectivement, avec mes petites connaissances en html je pourrais concevoir ce tableau. Le hic dans mon problème est de savoir où insérer le code html pour obtenir cette présentation.
0
jordane45 Messages postés 38441 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 février 2025 4 737
Modifié par jordane45 le 12/11/2015 à 18:24
Ca doit donner un truc du genre :


$themedir = __DIR__; 
$iterator = new RecursiveDirectoryIterator($themedir, FilesystemIterator::SKIP_DOTS); 

echo "<table>";
echo "<thead>";
echo "<tr>
        <th> Document </th>
        </tr>";
echo "</thead>";
echo "<tbody>";

  foreach(new RecursiveIteratorIterator($iterator) as $file) {
    $filename =  $file->getfilename();
    echo "<tr> 
                <td>
                   <a href='".$filename ."' >".$filename." </a>
                 </td> 
             </tr>";
   }
echo "</tbody>";
echo "</table>";



0
np.encbw Messages postés 3 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 12 novembre 2015 > jordane45 Messages postés 38441 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 février 2025
12 nov. 2015 à 18:35
Wouaw ! Merci bien.
Cela se rapproche de ce que je souhaiterais.
Puis-je abuser ... je souhairerais que le fichier index.php n'apparaisse pas dans ma liste.
Serait-ce possible ?
0
jordane45 Messages postés 38441 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 février 2025 4 737 > np.encbw Messages postés 3 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 12 novembre 2015
12 nov. 2015 à 19:32
Oui c'est possible;
Tu n'as qu'à faire un teste sur le nom du fichier ... et si c'est index.php.. ben tu ne l'affiche pas.
Pour se faire... il te suffit d'utiliser un IF

Je te laisse regarder sur le net comment l'écrire.
Reviens me voir si tu n'y arrives pas avec le code tenté.
0