Création d'une arborescence

Contenu du snippet

Cette fonction permet de lister les fichiers et dossiers contenu dans un dossier et même de lister les sous-dossiers.
En gros il fait toute l'arborescence à partir d'un dossier. Tout cela par récursivité.
J'ai mis un filtre pour ne pas lister certains dossier ou fichier et un autre pour ne pas lister certaines extensions

Source / Exemple :


<?php

function ListFolder($Folder, $SkipFileExts, $SkipObjects) // Fonction pour lister les dossier
{
 $dir = opendir($Folder);
 while (false !== ($Current = readdir($dir))) // Boucle sur tout ce qu'il y a dans le répertoire
 {
  if ($Current !='.' && $Current != '..' && in_array($Current, $SkipObjects)===false)
  {
   if(is_dir($Folder.'/'.$Current)) // Si c'est un dossier
   {
    echo '<strong style="color: #ff0000;">'.$Current.'</strong><br>'; 
    ListFolder($Folder.'/'.$Current, $SkipFileExts, $SkipObjects); // On liste les dossiers contenue dans le dossier (récursivité)
   }
   else
   {
    $FileExt = strtolower(substr(strrchr($Current ,'.'),1));
    if (in_array($FileExt, $SkipFileExts)===false) // On regarde si on dois afficher cette extension
     echo $Current.'<br>';
   }
  }
 }
 closedir($dir); 
}

?>

<html>
 <head>
  <title>Test listage de fichier et dossier par récursivité</title>
 </head>
 <body>

  <?php
   $Folder = './';
   $SkipExts = array('txt', 'php', 'db');
   $SkipObjects = array('UnDossier', 'UnFichier');
   ListFolder($Folder, $SkipExts, $SkipObjects);
  ?>	

 </body>
</html>

Conclusion :


Pour le listage, je n?ai pas fait de mise en forme. Y'a juste les dossiers en gras et en rouge, les fichiers en noir.
C'est juste pour l'example.
Ce sont mes débuts en PHP, donc n'hésiter pas à m'encourager ou à me critiquer. Le but étant de progresser.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.