Accueil > > > LISTER LES DOSSIERS, SOUS-DOSSIERS ET NOMBRE DE FICHIERS
LISTER LES DOSSIERS, SOUS-DOSSIERS ET NOMBRE DE FICHIERS
Information sur la source
Description
Une petite source sans prétention qui pourrait très bien figurer dans les snippets mais étant une page complète, je la poste ici. Elle vient compléter ce qui a déjà été publié dans le sujet mais va un peu plus loin... Elle est entièrement conforme aux normes XHTML 1.1 Strict (ce n'est pas très dur avec si peu de code).
Source
- <?php
- // repertoires/extensions à ignorer dans les dossiers
- $foldersListIgnore = array ('.','..');
- $extListAccept = array ('php','php3','php4','htm','html');
-
- // recuperation des dossiers
- $handle=opendir('.');
- $tableau='';
- $nbr_files=0;
-
- // boucle sur les éléments du dossier
- while ($file = readdir($handle))
- {
- // teste s'il s'agit d'un élément autorisé
- if (!in_array($file,$foldersListIgnore)) {
- // teste s'il s'agit d'un dossier
- if (is_dir($file)) {
- $subfolder=opendir($file);
- $ext=substr($subfolder,-3);
- // teste s'il y a des sous-dossiers et combien de sous-items il y a
- while ($subfolderContents = readdir($subfolder))
- {
- // teste les fichiers du sous-dossiers et leur extension
- if (!in_array($subfolderContents,$foldersListIgnore)) {
- $listing[$subfolder]=$nbr_files;
- }
- $nbr_files++;
- }
- $nbr_files =($nbr_files-2);
- // sous-résultat
- $folderContents .= '<li>'.$k.'<a href="'.$file.'/">'.$file.'</a> ('.$nbr_files.')</li>';
- $nbr_files = 0;
- }
- // teste s'il s'agit d'un fichier
- else if (is_file($file)) {
- // extrait l'extension du fichier
- $ext = substr($file,-4);
- if (stristr($ext, '.') === FALSE) {
- $ext = $ext;
- }
- else {
- $ext = substr($ext,-3);
- }
- // vérifie si l'extension est autorisée dans le listing
- if (in_array($ext,$extListAccept)) {
- $file_name = $file;
- // sous-résultat
- $folderContents .= '<li>'.$k.'<a href="'.$file_name.'">'.$file_name.'</a></li>';
- }
- }
- // teste s'il s'agit d'un fichier
- else {
- echo 'format de fichier non reconnu';
- }
- }
- }
- // ferme le parcours du dossier
- closedir($handle);
-
- // teste si la liste des dossiers n'est pas nulle
- if (!isset($folderContents))
- $folderContents = 'le dossier est vide';
- ?>
- <?xml version="1.0" encoding="iso-8859-1"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
- <html lang="en" xml:lang="en">
- <head>
- <title><?php echo $_SERVER['PHP_SELF'];?></title>
- <meta http-equiv="Content-Type" content="txt/html; charset=utf-8" />
- </head>
- <body>
- <h2><?php echo $_SERVER['PHP_SELF'];?></h2>
- <ul>
- <?php echo $folderContents;?>
- </ul>
- </body>
- </html>
<?php
// repertoires/extensions à ignorer dans les dossiers
$foldersListIgnore = array ('.','..');
$extListAccept = array ('php','php3','php4','htm','html');
// recuperation des dossiers
$handle=opendir('.');
$tableau='';
$nbr_files=0;
// boucle sur les éléments du dossier
while ($file = readdir($handle))
{
// teste s'il s'agit d'un élément autorisé
if (!in_array($file,$foldersListIgnore)) {
// teste s'il s'agit d'un dossier
if (is_dir($file)) {
$subfolder=opendir($file);
$ext=substr($subfolder,-3);
// teste s'il y a des sous-dossiers et combien de sous-items il y a
while ($subfolderContents = readdir($subfolder))
{
// teste les fichiers du sous-dossiers et leur extension
if (!in_array($subfolderContents,$foldersListIgnore)) {
$listing[$subfolder]=$nbr_files;
}
$nbr_files++;
}
$nbr_files =($nbr_files-2);
// sous-résultat
$folderContents .= '<li>'.$k.'<a href="'.$file.'/">'.$file.'</a> ('.$nbr_files.')</li>';
$nbr_files = 0;
}
// teste s'il s'agit d'un fichier
else if (is_file($file)) {
// extrait l'extension du fichier
$ext = substr($file,-4);
if (stristr($ext, '.') === FALSE) {
$ext = $ext;
}
else {
$ext = substr($ext,-3);
}
// vérifie si l'extension est autorisée dans le listing
if (in_array($ext,$extListAccept)) {
$file_name = $file;
// sous-résultat
$folderContents .= '<li>'.$k.'<a href="'.$file_name.'">'.$file_name.'</a></li>';
}
}
// teste s'il s'agit d'un fichier
else {
echo 'format de fichier non reconnu';
}
}
}
// ferme le parcours du dossier
closedir($handle);
// teste si la liste des dossiers n'est pas nulle
if (!isset($folderContents))
$folderContents = 'le dossier est vide';
?>
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html lang="en" xml:lang="en">
<head>
<title><?php echo $_SERVER['PHP_SELF'];?></title>
<meta http-equiv="Content-Type" content="txt/html; charset=utf-8" />
</head>
<body>
<h2><?php echo $_SERVER['PHP_SELF'];?></h2>
<ul>
<?php echo $folderContents;?>
</ul>
</body>
</html>
Conclusion
Je suis ouvert aux critiques constructives.
Historique
- 31 mars 2008 10:23:56 :
- ajout d'une capture
- 31 mars 2008 14:30:49 :
- - nettoyage du code: homogénéisation des quotes;
- test sur l'extension du fichier en 3 ou 4 caractères.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
nombre de fichier dans un dossier [ par lan0sic ]
Bonjours,Yatil un moyen de savoir combien il y a de fichier dans un dossier sur un ftp ?Merci bcp!Bonne prog... Lanosic
lien vers fichier hors du dossier serveur [ par ticapix ]
BonjourJe cherche a creer un lien vers un fichier qui ce trouve dans le dossier parent du serveur.Je pense qu'il y a peut etre une option dans apache.
Copie de fichier [ par BirD ]
Hello, j'ai un ptit prob pour copier une image, je m'explique: j'arrive parfaitement à copier l'image, mais dans le même dossier, ou un sous dossier,
création de fichier [ par TRASH52 ]
TRASH52bon je cherche à créer un arborescence de fichier deja enregistrés dans deux fi
Time out [ par ekinoks ]
Salut !alors voila j'est un petit problemme. pour ne pas avoir de time out je pencé que de se conecté et se deconecté plusiseur foi sur des duré de mo
caddie virtuel avec des sessions... [ par roul ]
Bon, j'explique mon probleme, je débute en php et là je vais m'arracher les cheveux sur un truc qui à l'air tout simple, mais là j'en peux plus; alors
Lister les fichier et dossier [ par supergrey ]
Bonjour, je voudrais savoir comment lister tous les dossiers et fichiers sur un autre serveur.
[ PHP ] [ Création de dossier et fichier ] [ UNIX ] [ par vvoisin ]
Bonjour, J'ai un probléme avec mkdir(). Quand j'execute le code suivant sur mon pc sous easyphp, le repertoire est bien créé alors que sur mon serveur
Upload de fichier ... [ par Hector78 ]
Hello !Je cherche à uploader un fichier local et l'envoyer dans un dossier sur un serveur. J'ai trouvé un code, très intéressant à l'adresse suivante
préchargement d'images [ par putch ]
voial j'ai un souci avec une fonction que je souhaite réaliser.Celle-ci doit précharger dans le navigateur toutes les images d'un répertoire.function
|
Derniers Blogs
[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|