begin process at 2012 05 31 02:12:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Problème récursivité pour arborescence de fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème récursivité pour arborescence de fichier

lundi 16 février 2009 à 12:38:24 | Problème récursivité pour arborescence de fichier

codbooster

Bonjour à tous, et merci de à vous de prendre du temps pour lire mon post ...

Je post aujourd'hui car j'ai un problème concernant une arborescence de fichier. Je vais essayer d'être le plus explicite possible ...

Je liste tout les dossiers, sous-dossier et fichier, puis je les caches, pour après les afficher dans des <div> en Javascript et Css. Le problème arrive lorsque j'ai beaucoup de sous dossiers, ma fonction récursive ne semble pas être totalement efficace, car mais identifiants de <div> sont mal incrémentés, et ducoup mais div ne sont pas unique, ce qui crée un conflit et lorsque je click sur un lien pour afficher un div, c'est un autre qui s'affiche ...

Un exemple puis le code :) :

trois dossier : test1, test2, test3
1 sous dossier dans chaque dossier : test14 dans test1, test24 dans test2 et test34 dans test3

Lorsque je click sur test2, c'est le sous dossier test14 qui va apparaitre ... Celà n'arrive que lorsque j'ai beaucoup de dossier ... donc l'example est simplifié ...

Je vais
maintenant vous montrer le code de ma fonction :

function list_Dossier($dirname,$monNbDossier, $choix = '', $monTableau='')
            {
                $dir = opendir($dirname);
                $nbDossier=$monNbDossier;
                $nbDossier++;
                echo $nbDossier;
                while($file = readdir($dir))
                {   
                        //-----------------Début de la partie de tri entre fichier et dossier******************
                            /* tableaux */
                            $tab_dir = array();
                            $tab_file = array();
                           
                            /* extraction */
                        if($file[0] != '.')
                        {
                              if(is_dir($dirname."/".$file)) {
                                  $tab_dir[] = $file;                 
                              } else {
                                  $tab_file[] = $file;
                              }
                        }
                            foreach($tab_file as $elem) {
                              $monextension=ereg("\.([^\.]*$)", $elem);
                              //echo $monextension;
                              echo '<a href="'.$dirname."/".$elem.'" class="mb" rel="type:"'.$monextension.'"><img src="imagesIntranet/fichier.png" width="15" height="15"/>'.$elem.'</a><a href="#" onClick="Suppr(\''.$dirname."/".$elem.'\')">&nbsp;<img src="imagesIntranet/button_cancel.png" width="10" height="10"/></a>&nbsp;<a href="download.php?telecharger='.$dirname."/".$elem.'"><img src="imagesIntranet/download.png" width="10" height="10"/></a><br />';
                            }
                            $nbDossier++;
                            foreach($tab_dir as $elem)
                            {           
                                if(isset($tab_dir[0]))
                                {                                                                      
                                    echo '<a  onclick="javascript:ipratm(\''.$choix.$nbDossier.'\');"><img src="imagesIntranet/5128-tOo-Dossierferme.png " id=image'.$nbDossier.'     width="15" height="15"/>'.$elem.'</a>&nbsp;<a href="?p=ajoutFichierForm.php&directory='.$dirname."/".$elem.'"><img alt="add file" src="imagesIntranet/edit_add.png" width="10" height="10"/></a>&nbsp;<a href="#" onClick="Suppr(\''.$dirname."/".$elem.'\')"><img alt="delete folder" src="imagesIntranet/button_cancel.png" width="10" height="10"/></a><br />';
?>
                                    <div id="coor<?php echo $choix.$nbDossier;?>" class="coor">
<?php                                                           
                                        list_Dossier("./".$dirname."/".$elem, $nbDossier, $choix.'s', $monTableau);
?>
                                    </div>
<?php
                                }                   
                            }
                        //----------------fin de la partie de tri*********************************************
                }     
            }

Merci beaucoup pour votre aide.
mardi 17 février 2009 à 16:38:37 | Re : Problème récursivité pour arborescence de fichier

codbooster

je me suis auto aidé, je suis partis sur une solution ajax qui a chaque fois que je click sur lien me liste le contenu du fichier sélectionné.

Je vous montre juste le script php éxécuté sur le click :

Voilà HF

Alex.

<?php
        $dirname=$_POST['chemin'];
       
        if(isset($_POST['idParent']))
        {
            $idParent= $_POST['idParent'];
        }

        $dir = opendir($dirname); // on ouvre le dossier
        $tab = array();
        $index=0;
        while($file = readdir($dir)) // tants qu'il y a des fichiers
        {
            if($file != '.' && $file != '..')
            {
                $tab[$index]["chemin"]= $dirname."/".$file;
                $tab[$index]["id"]= $index;
               
                if(is_dir($dirname."/".$file)){                   
                    $tab[$index]["type"]= "dossier";                   
                }
                else
                {
                    $tab[$index]["type"]= "fichier";
                }
            }
            $index++;
        }
       
        for($i=2;$i<=count($tab)+1;$i++)
        {       
            if($tab[$i]["type"] == "dossier")
            {           
                echo '<a  onclick="javascript:goAffiche(\''.$idParent.$tab[$i]["id"].'\', \''.$tab[$i]["chemin"].'\', \''.$idParent.$tab[$i]["id"].'\');"><img src="imagesIntranet/5128-tOo-Dossierferme.png " id=image'.$tab[$i]["id"].'     width="15" height="15"/>'.$tab[$i]["chemin"].'</a>&nbsp;<a href="?p=ajoutFichierForm.php&directory='.$tab[$i]["chemin"].'"><img alt="add file" src="imagesIntranet/edit_add.png" width="10" height="10"/></a>&nbsp;<a href="#" onClick="Suppr(\''.$tab[$i]["chemin"].'\')"><img alt="delete folder" src="imagesIntranet/button_cancel.png" width="10" height="10"/></a><br />';
                echo '<div class="coor" id="'.$idParent.$tab[$i]["id"].'"></div>';
            }
            else
            {
                echo '<a href="'.$tab[$i]["chemin"].'" class="mb" ><img src="imagesIntranet/fichier.png" width="15" height="15"/>'.$tab[$i]["chemin"].'</a><a href="#" onClick="Suppr(\''.$tab[$i]["chemin"].'\')">&nbsp;<img src="imagesIntranet/button_cancel.png" width="10" height="10"/></a>&nbsp;<a href="download.php?telecharger='.$tab[$i]["chemin"].'"><img src="imagesIntranet/download.png" width="10" height="10"/></a><br />';
            }
        }
?>





Cette discussion est classée dans : file, dossier, tab, dir, elem


Répondre à ce message

Sujets en rapport avec ce message

Paginer dossier [ par speedylol ] Bonjour je suis sur un petit probléme je n'arrive pas a paginer le nombre de dossier créee je voix pas très bien comment faire Merci de votre aide.@se Afficher le contenu d'un dossier [ par Toolsweb ] SAlut, je voudrais afficher le contenu d'un dossier nommé fichiers. j'ai trouvé ceci$dir=opendir("images"); while($fi Vérification dossier, problème [ par Satan2k ] Voila je fais un explorateur de dossier multi-utilisateurs en ligne mais voila j'ai un problème que je n'arrive pas à résoudre. Je veux faire en sort Sernier dossier [ par maximev ] Bonjour,J'utilise le code ci-dessous pour me connecter à un ftp depuis une page de mon site afin d'y chercher le dossier le plus récent mais cela ne f lister les dossier et non le contenu [ par zuddap ] bonjour a tous, voila je cherche a lister tous les dossiers qui sont dans un dossier(parrent) ou il y a également des fichiers. Comme il est dit dans Affichage page par page d'un contenu de repertoir [ par fabrice88 ] bonjour, j'ai un repertoire dans lequel se trouve d'autres repertoires. je fait afficher le nom de ces repertoires sur ma page internet mais le proble tester l'existence de fichiers [ par quicommenceparQ ] Bonjour, Je parcours les fichiers et les sous-répertoires avec une fonction récursive, et je voudrais, s'il existe au moins un fichier portant une ce etat d'un checkbox [ par elmvaries ] salut à tous, je veux savoir comment je peux récupérer le contenu d'un checkbox coché,car je fait une formulaire mais je n'ai rien de tous...mon code Modifier le mode de rangement [ par scrodofus ] Bonjour, voila j'ai un ami qui ma creer ce script suivant : [code=php]\n\n"; $tab=array(); if ($handle = opendir('mp3')) { while ($file = readdir affichage liste dossiers par ordre ALPHABETIQUE [ par mailliam ] Ello tous! Voilà moi je me sers du code suivant pour lister les dossiers d'un répertoire sur mon serveur. Seulement ils ne s'affiche pas par ordre al


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales