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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Script arborescence PHP


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Script arborescence PHP
    Bonjour,
    je voudrais lister tous les dossiers et fichiers.
    Je peux faire les dossiers et les fichiers du dossiers général mais pour les sous dossiers.
    Quelqu'un pour m'aider ?
    PS : je suis débutant !

    Dossiers Général
    |_Sous_dossier
    |_Fichier1
    |_Fichier2
    |_Fichier3
    |_Sous_dossier
    |_Sous_dossier
    |_Fichier1
    |_Fichier2
    |_Fichier3
    |_Sous_dossier
    |_Fichier1
    |_Fichier2
    |_Fichier3

    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
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    <html>
    <head></head>
    <style>
    .fichier {
    font-weight:bold;
    font-size: 11px;
    font-family: arial, sans-serif;
    color:#000000;}
     
    .dossier {
    font-weight:bold;
    font-size: 12px;
    font-family: arial, sans-serif;
    color:#009900;}
     
    body {cursor: default;background-color:#FFFFFF;}
    a:link{Text-Decoration:none; color : #000000;}
    a:active{Text-Decoration:none; color : #000000;}
    a:visited{Text-Decoration:none; color : #000000;}
    a:hover{cursor: default;color:#000000;Text-Decoration:underline;}
    </style>
     
    <body>
    <div>
    <?php
    $pathimage = 'images/'; // dossier image pour extention
    $taile_image ='16'; //taille de l'icone extention
    $dir_nom = 'dossiers/.'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.'  --> ('point')
    $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant
    $fichier= array(); // on déclare le tableau contenant le nom des fichiers
    $dossier= array(); // on déclare le tableau contenant le nom des dossiers
    $sous_dossier= array(); // on déclare le tableau contenant le nom des dossiers
     
    while($element = readdir($dir))
    {
        if($element != '.' && $element != '..')
        {
            if (!is_dir($dir_nom.'/'.$element))
            {$fichier[] = $element;}
            else
            {$dossier[] = $element;}
        }
    }
    closedir($dir);
     
    if(!empty($dossier))
    {
        sort($dossier); // pour le tri croissant, rsort() pour le tri décroissant
        foreach($dossier as $lien)
        {echo "<img src='images/dossier.png' width='".$taile_image."' head='".$taile_image."'><a href=\"$dir_nom/$lien \">$lien</a><br>";}
    }
     
    if(!empty($fichier)){
        sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
            foreach($fichier as $lien) 
            {	$pathinfo = pathinfo($lien);
    			if ($pathinfo['extension']=='xlsx')
    			{echo "<img src='".$pathimage."excel.png' width='".$taile_image."' head='".$taile_image."'></a>";}
    			elseif ($pathinfo['extension']=='jpg')
    			{echo "<img src='".$pathimage."jpg.png' width='".$taile_image."' head='".$taile_image."'></a>";}
    			elseif ($pathinfo['extension']=='tif')
    			{echo "<img src='".$pathimage."tiff.png' width='".$taile_image."' head='".$taile_image."'></a>";}
    			elseif ($pathinfo['extension']=='docx')
    			{echo "<img src='".$pathimage."word.png' width='".$taile_image."' head='".$taile_image."'></a>";}
    			elseif ($pathinfo['extension']=='doc')
    			{echo "<img src='".$pathimage."word.png' width='".$taile_image."' head='".$taile_image."'></a>";}
    			elseif ($pathinfo['extension']=='xls')
    			{echo "<img src='".$pathimage."excel.png' width='".$taile_image."' head='".$taile_image."'></a>";}
    			elseif ($pathinfo['extension']=='dxf')
    			{echo "<img src='".$pathimage."dxf.png' width='".$taile_image."' head='".$taile_image."'></a>";}
    			elseif ($pathinfo['extension']=='dwg')
    			{echo "<img src='".$pathimage."dwg.png' width='".$taile_image."' head='".$taile_image."'></a>";}
    			elseif ($pathinfo['extension']=='pdf')
    			{echo "<img src='".$pathimage."pdf.png' width='".$taile_image."' head='".$taile_image."'></a>";}
    			if ($pathinfo['extension']=='php'){}
    			else{echo "<a class='media' href=\"$lien \" target='_blank'>$lien</a><br>";}
            }
     }
    ?>
    </div>
    </body>
    </html>

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Tu ne descends jamais plus profond que ces deux niveaux ? Tu n'as pas besoin de récursivité très complexe ?
    Je te conseille de tester ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $dir_path='/path/to/directory/';
    $noeuds_niv1 = array_slice(scandir($dir_path), 2);
    foreach($noeuds_niv1 as $noeud_niv1){
       echo '--'.$noeud_niv1.'<br/>';
       if(is_dir($noeud_niv1)){
          $noeuds_niv2 = array_slice(scandir($dir_path.'/'.$noeud_niv1), 2);
          foreach($noeuds_niv2 as $noeud_niv2){
             echo '----'.$noeud_niv2.'<br/>';
          }
       }
    }
    Devrait retourner ça (non testé)
    --Sous_dossier
    ----Fichier1
    ----Fichier2
    ----Fichier3
    ----Fichier4
    --Sous_dossier
    ----Fichier1
    ----Fichier2
    ----Fichier3
    --Sous_dossier
    ----Fichier1
    ----Fichier2
    ----Fichier3
    Petite explication de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $noeuds_niv1 = array_slice(scandir($dir_path), 2);
    http://php.net/manual/fr/function.scandir.php

    scandir($dir_path) retourne un tableau avec tout le contenu sur un seul niveau, mais avec en premier '.' et '..'
    On applique donc sur ce tableau la fonction array_slice( ) avec 2 en second paramètre pour lui dire : reprend tout le tableau à partir de l'id 2 (sans les deux premières valeurs quoi).

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Tu ne descends jamais plus profond que ces deux niveaux ? Tu n'as pas besoin de récursivité très complexe ?
    Le bout de code est pas mal mais effectivement je peux descendre sur 2,3 ou bien 4 niveau.
    par contre dans ton code je ne peux pas trier les noms ?

    merci pour ton aide

  4. #4
    Invité
    Invité(e)
    Dernière modification par Invité ; 29/04/2018 à 19h38.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Super ! c'est exactement ce que j'avais besoin

    Merci à vous deux !

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

Discussions similaires

  1. Pb de script et PHP
    Par blueice dans le forum Langage
    Réponses: 4
    Dernier message: 22/07/2006, 14h21
  2. [PHP-JS] Boucle /script JavaScript /PHP
    Par ghita269 dans le forum Langage
    Réponses: 5
    Dernier message: 14/07/2006, 15h54
  3. Probleme avec un script javascript->php
    Par leluis dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/03/2006, 15h32
  4. Envoi d'une variable en shell script sur php
    Par Ponchi dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2006, 13h54
  5. Réponses: 3
    Dernier message: 24/01/2006, 08h15

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