Cherche Script : lister repertoire dans tableau html
Bonjour a tous,
Cela fait maintenant deux bonnes heures que je recherche un script me permettant de lister le contenu d'un repertoire dans un tableau html via un script php.
Quelqu'un connait t'il un site ou script.
Merci d'avance et bonne journéée
Julian
Récupérer la liste des répertoires dans un tableau
Récupérer la liste des répertoires dans un tableau à partir d'une fonction récursive.
Les fonctions récursives, c'est bien joli, mais quand on veut récupérer des valeurs (il faut alors passer par un RETURN), ce n'est plus évident.
A partir du script de http://www.ac-creteil.fr/util/progra...epertoires.php
voici une adaptation qui permet de récupérer la liste des répertoires et sous-répertoires sous forme de tableau.
Le grand avantage est de pouvoir utiliser ce tableau dans des listes déroulantes ...
(une astuce INDISPENSABLE est d'utiliser des variables GLOBALES pour $liste_rep et pour $i )
Code:
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/>';
}
}
// ============================================================================================================================
?> |
Merci à tous les développeurs.