1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| <?php
// ----------------------------------------------------------------------------------------------------------------------------------------------------------------
// lecture des REPERTOIRES en PROFONDEUR (à partir de "$rep") et COMPTAGE du nombre de fichiers (avec fonction récursive)
// ----------------------------------------------------------------------------------------------------------------------------------------------------------------
// <a href="http://www.ac-creteil.fr/util/programmation/scripts/repertoires.php" target="_blank">http://www.ac-creteil.fr/util/progra...epertoires.php</a>
/* script rep1.php
* affichage récursif du contenu d'un répertoire, avec parcours en "profondeur d'abord"
* pour cela dès que l'on a atteint et reconnu un sous-répertoire, on le parcours
* prioritairement en appelant récursivement la fonction de parcours pour ce répertoire.
*/
function parcours_rep($rep, $ssrep, $racine, $i) // fonction récursive ("racine" est là pour retrancher cette racine au chemin complet afin de remplir le tableau)
{
if (is_dir($rep)) // Ouvre le dossier "racine" ("/photos_web/galeries/" par exemple) et lit tous les répertoires
{
if( $dir = opendir($rep) ) // Ouvre le dossier "racine" et lit tous les répertoires
{
while( ($fichier = readdir($dir)) !== false )
{
if ($fichier != "." && $fichier != ".." && $fichier != "miniatures")
{
$chemin = $rep.$fichier;
if (is_dir($chemin)) // Est-ce que $chemin est un répertoire ?
{
global $liste_rep;
global $i;
$liste_rep[$i] = substr($chemin, strlen($racine)); // PLace les fichiers dans un tableau ($liste_rep[] = à la fin)
echo 'i = '.$i.' - ';
echo 'liste_rep = '.$liste_rep[$i].'<br/>';
// echo 'chemin = '.$chemin."<br>";
$i++;
parcours_rep($chemin.'/', ($ssrep==''?$fichier:$ssrep.'/'.$fichier) , $racine , $i); // fonction récursive
}
/* else // si on veut afficher les fichiers du répertoire (ou sous répertoire)
{
$liste_galeries[$i] = substr($chemin, strlen($racine)); // PLace les fichiers dans un tableau
echo 'galerie '.$i. ' = ' . $liste_galeries[$i].'<br/>';
}
*/ }
}
}
} // -------------------------------------- fin de la lecture des répertoires -------------------------------------------------------------------
else
{
echo "le répertoire \"$rep\" n'existe pas ...";
}
closeDir($dir);
return $liste_rep;
} // ---------------------------------------------------------------- fin de la fonction -------------------------------------------------------------------
$liste_repertoires = array();
$liste_galeries = array();
$i=0; // $i = tous les répertoires
$nb_rep=0;
echo "Affichage d'un rép. avec parcours en PROFONDEUR d'abord <br/>";
//$repertoire= '../../photos_web/galeries/'; // "$repertoire" défini dans le programme d'appel
$liste_repertoires = parcours_rep($racine, '', $racine, $i=0);
$nb_galeries = (count($liste_galeries));
$nb_rep = (count($liste_repertoires));
echo 'nb_rep = '.$nb_rep.'<br/>';
// Classement des répertoires ( "sort" = tri croissant "rsort" = tri décroissant)
sort($liste_galeries); // ou rsort($liste_galeries);
sort($liste_repertoires); // ou rsort($liste_repertoires);
for ($i=0; $i<$nb_rep; $i++)
{
if ($liste_repertoires[$i] != '')
{
echo 'liste_rep '.$i.' = '.$liste_repertoires[$i].'<br/>';
}
}
// ============================================================================================================================
?> |
Partager