IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Afficher les répertoires, pas les fichiers


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Afficher les répertoires, pas les fichiers
    Bonjour,
    je cherche à créer une page dans laquelle ne doivent s'afficher que les répertoires d'un répertoire donné et pas les fichiers s'y trouvant. Après quelques heures de recherche... j'abandonne et compte sur vos savoirs pour trouver une solution.
    Voici le script en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php 
    //    exploration_dossier();
    // ouvre le rep
        $dp = opendir($pseudo);
        $i=0; 
        while ( $file = readdir($dp) ) 
        { 
    // enleve les fichiers . et .. 
    if ($file != '.' && $file != '..')
            { 
    // on passe les datas dans un tableau 
    $ListFiles[$i]=$file; 
    $i++; 
        } 
        } 
    closedir($dp); 
    // tri par ordre decroissant 
        if(count($ListFiles)!=0) 
        { 
            if($list_tri == 'DESC') 
            { 
    rsort($ListFiles); 
        } 
            else 
            { 
            sort($ListFiles); 
            } 
        } 
    // affiche les fichiers par ordre alphabetique decroissant 
        $i=0; 
        while ( $i < count($ListFiles)) 
        {
            echo "<a href='voir-dossier.php?rep=";
            echo $ListFiles[$i]."'>";
            echo $ListFiles[$i]."</a><br />";
     
            $dossier = $ListFiles[$i] ;
            $i++; 
        }    
    ?>
    Merci d'avance pour toute contribution.

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Voici la page d'index d'easyphp (une ancienne version) que j'avais modifié pour afficher mes sites :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
          <?
    $rep=opendir('.');
    $i = 0;
    while ($file = readdir($rep)) {
     if($file != '..' && $file !='.' && $file !=''){ 
      if (is_dir($file)){
            $array[$i] = $file ;   // on met les sites dans 1 tableau
            $i ++;}
     }
    }
    // tri du tableau => ordre alpha
    sort($array);
    $x = count($array);
    // affichage des sites par ordre alphabetique
    for ($i = 0; $i <= $x -1; $i++) {
        echo "&nbsp;&nbsp;&nbsp;&nbsp;";
        echo "<img src=\"/images_easyphp/dossier.gif\" width=\"15\" height=\"12\">&nbsp;";
        echo "<a href=\"".$array[$i]."/\" target=_blank class=text1>".$array[$i]."</a>";
        echo "<br>";
    }
    //
    closedir($rep);
    clearstatcache();
    ?>
    En la modifiant un peu tu devrais pouvoir y arriver

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut utiliser is_dir()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    // exploration_dossier();
    // ouvre le rep
    $rep = "test";
    $dp = opendir($rep);
     
    while ( $file = readdir($dp) )
    {
    // enleve les fichiers . et ..
    if (is_dir($rep . '/' . $file) && $file != '.' && $file != '..')
    {
     
    // on passe les datas dans un tableau
    $ListFiles[] = $file;
    }
    }
    closedir($dp);
    // tri par ordre decroissant
    if($ListFiles)
    {
    if($list_tri == 'DESC')
    {
    rsort($ListFiles);
    }
    else
    {
    sort($ListFiles);
    }
    }
    // affiche les fichiers par ordre alphabetique decroissant
    if (is_array($ListFiles)) {
    foreach ($ListFiles as $dirname) {
     
    echo "<a href='voir-dossier.php?rep=";
    echo $dirname ."'>";
    echo $dirname."</a><br />";
    }
    }
    ?>
    Au passage, tu peux regarder comment je créé et lit le tableau sans avoir recours a un vilain $i incrementé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Points : 47
    Points
    47
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function _is_dir($file) {
      return is_dir($file) && $file != '.' && $file != '..';
    }
    $folders = array_filter(scandir($folder), '_is_dir');

  5. #5
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses.... La solution de Sabotage me convient parfaitement.. je progresse tout tout doucement en php... et c'est grâce à vous
    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/01/2012, 10h03
  2. [Batch] Lister les répertoires dans un fichier
    Par Olivier Regnier dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 30/03/2010, 22h35
  3. Afficher les répertoires et les fichiers s'y trouvant
    Par Olivier Regnier dans le forum Web
    Réponses: 3
    Dernier message: 16/10/2008, 11h17
  4. [MySQL] Tableau n'affiche pas les données sur les pages suivantes
    Par orleans dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/12/2007, 20h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo