[PHP] lister dossier et fichier séparément

Résolu/Fermé
zecka Messages postés 115 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 2 décembre 2015 - 16 avril 2011 à 18:39
zecka Messages postés 115 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 2 décembre 2015 - 21 avril 2011 à 15:39
Bonjour,

J'ai un dossier qui contient une page php et 10 dossier remplis d'image .jpg

En gros j'aimerai que ma page php crée dynamique une page avec les lien vers les dossier en haut de page et les fichier correspondant en dessous

Comment procéder ?




A voir également:

3 réponses

ktm620enduro Messages postés 293 Date d'inscription mardi 21 septembre 2010 Statut Membre Dernière intervention 12 mars 2013 38
Modifié par ktm620enduro le 16/04/2011 à 18:43
<?php 
function scanDirectories($rootDir, $allData=array()) { 
    // set filenames invisible if you want 
    $invisibleFileNames = array(".", "..", ".htaccess", ".htpasswd"); 
    // run through content of root directory 
    $dirContent = scandir($rootDir); 
    foreach($dirContent as $key => $content) { 
        // filter all files not accessible 
        $path = $rootDir.'/'.$content; 
        if(!in_array($content, $invisibleFileNames)) { 
            // if content is file & readable, add to array 
            if(is_file($path) && is_readable($path)) { 
                // save file name with path 
                $allData[] = $path; 
            // if content is a directory and readable, add path and name 
            }elseif(is_dir($path) && is_readable($path)) { 
                // recursive callback to open new directory 
                $allData = scanDirectories($path, $allData); 
            } 
        } 
    } 
    return $allData; 
} 
?> 

Exemple:
print_r(scanDirectories("www")); retourne

--- 
Array 
( 
    [0] => www/index.php 
    [1] => www/admin.php 
    [3] => www/css/css.css 
    [4] => www/articles/2007/article1.txt 
    [4] => www/articles/2006/article1.txt 
    [8] => www/img/img1.png 
)

Abandonne ce qui te trouble au profit de ce qui apaise ton coeur.
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
Modifié par Bilow le 16/04/2011 à 23:25
Salut,

Tu crées une fonction qui liste et trie les dossiers :
function listeDossiers($chemin){ 
$dossier = opendir($chemin); // On ouvre le dossier 
if($dossier){ // Si ca marche 
while($f = readdir($dossier)){ // On liste fichiers et dossiers 
if(is_dir($chemin.$f)){ 
echo "Dossier : $f"<br>"; 
} 
} 
} 
}

Et tu crées une fonction listeFichiers(), exactement la même, mais tu remplaces is_dir par is_file.

Ces fonctions sont simples, tu peux le faire récursivement (si c'est un dossier tu rappelles la fonction listeDossier($chemin.$f); ).

Attention, beaucoup de personnes font l'erreur d'utiliser is_dir($f) ou is_file($f). Il ne faut surtout pas oublier d'y ajouter le chemin du dossier ouvert avec opendir().

Ps : Tu peux combiner les deux fonctions en mettant un else à if(is_dir(..)). Ce sera plus pratique.

;-)
0
zecka Messages postés 115 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 2 décembre 2015 28
21 avril 2011 à 15:39
Merci de votre aide, j'ai finalement réussi a faire ce que je voulais !!!
0