lister les fichiers d'un dossier en php

atomikado

WRInaute discret
Bonjour,

je voudrais savoir quelle fonction php je dois utiliser rpour lister les fichiers présents dans un dossier.

Merci !

Mikaël
 

lothar

WRInaute passionné
Bonsoir,

j'essaie de lister les fichiers d'un répertoire via ce script:

Code:
<?php
$rep = "./";
$dir = opendir($rep);
$maxtop = 10;

while ($f = readdir($dir)) // lecture et tri par date de création
   if(is_file($rep.$f))
      for($k=1;$k<=$maxtop;$k++)
         if(filectime($rep.$f) > $toplk[$k][1]) {
            $s0 = filectime($rep.$f) ; $u0 = $f;
            for($kk = $k;$kk<=$maxtop;$kk++) {
               $s = $toplk[$kk][1] ; $u = $toplk[$kk][2];
               $toplk[$kk][1] = $s0 ; $toplk[$kk][2] = $u0;
               $s0 = $s ; $u0 = $u;
            }
            break;
         }
closedir($dir);

for($k=1;$k<=$maxtop;$k++) { // affichage
?><A href="<?php echo $rep.$toplk[$k][2];?>">
      <?php echo str_replace(".php","",$toplk[$k][2]);?>
   </A><br>
<?php } ?>

Les problèmes sont les suivants:
- comment éviter d'afficher le fichier index.php ?
- comment afficher le titre des pages plutôt que leur nom de fichier ?

Merci d'avance
 

UsagiYojimbo

WRInaute accro
...

... je te conseille davantage d'utiliser la fonction glob, qui liste les fichiers d'un dossier (avec possibiliter de filtrage), plutôt que les 15-20 lignes que tu as mis en exemple.

Concernant la lecture du titre, tu n'as pas le choix je pense, il va te falloir ouvrir chaque fichier un a un lors du parcours et récuperer le contenu de la balise title.
 

lothar

WRInaute passionné
Apparemment la fonction glob() a été désactivée chez mon hébergeur (SIVIT):

Warning: glob() has been disabled for security reasons in /home/local/apache/htdocs/sites/p/***/www/articles/index.php on line 106

Est-ce qu'il existe une solution vers laquelle je pourrais me tourner ?
 

e-kiwi

WRInaute accro
quelle horreur ce script, les noms de variables datent de la début de la programmation ^^

si tu avait suivi mon conseil, tu serai tombé sur :

http://www.asp-php.net/tutorial/asp-php/directory.php bien plus clair

en rajoutant dans la boucle :

$ext = explode(".", $f); pour avoir l extention du fichier, tu interdis l affichage du php :

if((is_file($rep.$f)) and ($ext != 'php')) {

:)
 

lothar

WRInaute passionné
e-kiwi a dit:
quelle horreur ce script, les noms de variables datent de la début de la programmation ^^

si tu avait suivi mon conseil, tu serai tombé sur :

http://www.asp-php.net/tutorial/asp-php/directory.php bien plus clair

en rajoutant dans la boucle :

$ext = explode(".", $f); pour avoir l extention du fichier, tu interdis l affichage du php :

if((is_file($rep.$f)) and ($ext != 'php')) {

:)

Le script précédent venait pourtant d' ASP-PHP.net ...

Je vais regarder ça, merci.
 

e-kiwi

WRInaute accro
pourtant, l url que je t'ai donné, je vois le script avec de vrais noms de variables. je sais pas d ou tu sors ce script :)
 

zerobug

WRInaute discret
Même si ce message est un peu vieux, voici ce que j'ai pu faire en PHP : http://www.zerobug.fr/liste-contenu-dos ... t-php.php3

Le script affiche automatiquement les fichiers exe, zip, doc, pdf et htm (on peu choisir les extension à lister ou non), leur poids et la date de mise en ligne et créé des liens afin de les télécharger (un document pdf par exemple ne sera pas ouvert mais automatiquement téléchargé).
 

Discussions similaires

Haut