Articles

Le mois de la fonction PHP : liste de dossiers

  • Ecrit par Julien Pauli
  • lundi 02 avril 2007
Image pour le titre du contenu

This document is also available in English en 

Il arrive que vous ayez besoin de lister les fichiers et dossiers dans un dossier précis, c'est précisément ce que scandir permet de faire; cette fonction intervient au niveau du système de fichier sur le serveur

Elle est très pratique pour remplacer une combinaison d'opendir() readdir() , et elle fait aussi apparaitre les dossiers Elle peut rapidement créer une arborescence et répondre à un problème de listage dans un système de fichiers

scandir() n'assure pas directement de recursivité - le tri est fait par défaut dans l'ordre alphabétique croissant ( changeable )

Exemple 1 - Mini système très simpliste de gestion de fichiers
<?php
   echo '<h1>Index of /</h1>';
   echo '<ul>';
   $dir = scandir('.');
   $files = count( $dir );
   for ( $i = 0; $i < $files; $i++ )
   {
       if ( is_file($dir[$i]) )
           echo "<li><a href=\"$dir[$i]\">$dir[$i]</a></li><br>";
 
 
       if ( is_dir($dir[$i]) )
           echo "<li><a href=\"$dir[$i]\"/>$dir[$i]/</a></li><br>";
   }
   echo '</ul>';
?>

Exemple 2 - Séparer les fichiers et les dossiers d'un dossier
<?php
 
$files = scandir ( $myDir );
 
foreach( $files as $pos => $file ) {
 
   if( is_dir( $file ) ) {
 
       $dirs[] = $file ;
 
       unset( $files[$pos] ) ;
 
   }
 
}
 
?>
 
A mémoriser

scandir() est disponible depuis PHP 5.
scandir() renvoie FALSE en cas d'echec ( pas d'éléments à lister ) , ou si le repertoire spécifié n'existe pas.
< Précédent   Suivant >

Commentaires

Vous pouvez ajouter votre commentaire!


Vous devez vous connecter pour commenter