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.
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.