Comment balayer les fichiers d’un dossier en php

IL peut être utile de disposer d’un script qui permet de lister le contenu de dossier pour en extraire les fichiers. Voici un script PHP très simple qui balaye les fichiers d’un dossier ou d’un sous-dossier et ajoute leur nom de façon distincte, donc unique.
Ce code PHP est une fonction récursive nommée `listerFichiers`, conçue pour lister tous les fichiers d’un dossier spécifié, y compris ceux se trouvant dans ses sous-dossiers. Voici une description détaillée de son fonctionnement :

  1. Définition de la Fonction `listerFichiers` :
    – La fonction prend un seul paramètre, `$cheminDossier`, qui est le chemin du dossier à parcourir.
  2. Vérification de l’Existence du Dossier :
    – Le code commence par vérifier si le chemin fourni correspond bien à un dossier (`is_dir`).
  3. Ouverture du Dossier :
    – Si le dossier existe, il est ouvert avec `opendir`.
  4. Parcours des Entrées du Dossier :
    – La fonction lit chaque entrée du dossier une par une avec `readdir`. Chaque entrée peut être un fichier ou un sous-dossier.
  5. Exclusion des Entrées Spéciales :
    – Les entrées spéciales `’.’` (répertoire courant) et `’..’` (répertoire parent) sont ignorées.
  6. Traitement des Fichiers et des Sous-dossiers :
    – Pour chaque entrée, le chemin complet est construit (`$cheminComplet`).
    – Si l’entrée est un fichier (`is_file`), son chemin complet est affiché.
    – Si l’entrée est un dossier (`is_dir`), la fonction `listerFichiers` s’appelle elle-même récursivement avec le chemin de ce sous-dossier comme argument. Cela permet d’explorer et de lister les fichiers des sous-dossiers.
  7. Fermeture du Dossier :
    – Après avoir parcouru toutes les entrées, le dossier est fermé avec `closedir`.
  8. Appel Initial de la Fonction :
    – Enfin, la fonction `listerFichiers` est appelée avec le chemin d’un dossier spécifié (`$cheminDossier`), déclenchant le processus de listing.
function listerFichiers($cheminDossier) {
    if (is_dir($cheminDossier)) {
        if ($dossier = opendir($cheminDossier)) {
            while (($fichier = readdir($dossier)) !== false) {
                if ($fichier != "." && $fichier != "..") {
                    $cheminComplet = $cheminDossier . '/' . $fichier;
                    if (is_file($cheminComplet)) {
                        echo $cheminComplet . "<br>";
                    } elseif (is_dir($cheminComplet)) {
                        listerFichiers($cheminComplet); // Appel récursif pour les sous-dossiers
                    }
                }
            }
            closedir($dossier);
        }
    } else {
        echo "Le dossier '$cheminDossier' n'existe pas ou ne peut pas être ouvert.<br>";
    }
}

// Spécifiez le chemin du dossier à parcourir
$cheminDossier = "chemin/vers/votre/dossier";
listerFichiers($cheminDossier);

Ce script est utile pour obtenir une liste complète de tous les fichiers contenus dans un dossier et tous ses sous-dossiers. La récursivité est un aspect clé ici, permettant au script de naviguer à travers une structure de dossiers imbriqués de manière efficace et systématique.

LAISSER UNE REPONSE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici