Probléme function PHP

Bonjour,
Jai un souci, j'ai créer ma function pour lister les fichiers et dossier de maniéres recursive, le hic c'est qu'il faut qu'elle me return tout les fichiers de tout le dossier courant et sous dossier. Hors comme le return stop la function elle me return seulement les fichier du dossier courant et non c'est sous dossier avec.

===> La function
http://rafb.net/p/J94G3j37.html

Merci d'avance.
Configuration: Windows XP
Firefox 3.0.6

11 réponses

  1. Il te manque la fonction qui appelle de function Listage de fichier...

    function Algo_Function_pere_Recursif
    $tab=""
    While !(Listage de fichier($tab2)) do
    {
    $tab+=$tab2
    }

    D'ailleurs, où est le deuxième paramètre dans l'appel recursif de ta function Listage de fichier?
    0
    1. Oups il sert a rien xD thx
      0
      1. Jai pas bien compris ton code en faite :/
        0
        1. tu as corrigé la récursivité. Et ça marche pas ?
          0
          1. non mais le code que tu ma donner est faux :/

            Sa n'existe pas sa : While !(Listage de fichier($tab2)) do

            Je vois pas vraimment ce que tu veut dire :/
            0
            1. Je sais bien c'est un peu bidon...
              Mais je te disais qu il fallait faire attention d'ajouter à ton tableau, le tableau retour de la recursivité avant de le renvoyer au père.
              N'oublies qu'elle est bloquée tant qu'elle n'a pas trouvé la fin de l'arborescence des fichiers donc renvoyer les fichiers parcourus.
              De plus, Il faut que tu distingues le noeud du noeud suivant.Suinon ton tableau sera écraser par les suivants noeuds.
              si tu decides de renvoyer un boolean, il faut que tu geres un fichier indépendant de l'appel.
              Du genre :
              function appelrecursif($tab)
              {
              if noeud then {
              appelrecursif(tab2)
              tab+=tab2
              }
              if noeud suivant then
              appelrecursif(tab2)
              tab+=tab2
              }
              retour boolean // pas envie de reflechir

              En gros veilles à ce que l'appel récursif ne soit pas par adresse mais par valeur ...
              0
              1. oép j'avais compris le souci, mais je vois pas comment recoder ma function :/
                0
                1. Rajoute ton tableau dans l'appel déja et regarde si ca suffit. Puis utilise un petit repertoire pour tester. Et rajoute un un tableau globale au sous arborescence...
                  0
                  1. listage_fichier($directory."/".$files);
                    il manque 2 param... function listage_fichier($directory,$tab = array(),$fichier = null){

                    essaie
                    la déclaration : function listage_fichier($directory,$tab = array()){
                    et la recursivité : listage_fichier($directory."/".$files,$tab);

                    remarque : houps! mais ça marche.
                    $tab[] = $directory."/".$files."<br>"; je ne connais pas façon pour ajouter dans un tableau
                    mais
                    $i=count($tab);
                    $tab[$i] = $directory."/".$files."<br>";
                    ou aussi
                    y a une fonction pour ajouter un element au tableau. mais ??? il faut la chercher.
                    http://doc.domainepublic.net/php/doc.php.long/function.array-push.html
                    Houps! il le conseille
                    0
                    1. Franchement stp tu ne peut pas me la coder rapidement parceque la je suis pommer je vois pas comment faire.
                      STP
                      0
                      1. Oups ! Ok j'avais pas vu ta reponse, houps merci, Houps tkt pas je chercher aussi :) Houps merci :D
                        0