Rendre récursive une fonction de listage.

Rendre récursive une fonction de listage. - PHP - Programmation

Marsh Posté le 31-08-2004 à 18:59:49    

Bonjour,  
 
J'ai récupéré sur le net une fonction qui liste les fichiers d'une extension connu, en loccurence, j'ai choisit 'php'.
J'ai adapté la fonction pour qu'elle me donne en plus, le nombre total de lignes de l'ensemble des fichiers php trouvé dans le répertoire.
 
J'ai essayé de la rendre récursive également mais je n'y arrive pas, même en regardant sur des fonctions déjà existantes. Je sais que c'est avec is_dir, qu'il faut rappeller la fonction mais après je sèche... :/
 
Voilà la fonction :
 

Code :
  1. <?php
  2. function browse ($pDirectory, $pExtension)
  3. {
  4.     if($handle = opendir($pDirectory))
  5.     {
  6.          while(false !== ($file = readdir($handle)))
  7.         {
  8.             $getExt = explode(".", $file);
  9.             $countExt = count($getExt);
  10.             $fExt = $countExt - 1;
  11.             $myExt = $getExt[$fExt];
  12.      if (($myExt == $pExtension) && ($file != "." ) && ($file != ".." )) {
  13.        $files[] = $file;
  14.        //pour compter le nombre de lignes des fichiers :
  15.        $ligne=file($file);
  16.        $nbligne = sizeof($ligne);
  17.        $totalligne += $nbligne;
  18.      }
  19.         }
  20.    echo $totalligne." lignes au total<br>";
  21.      }
  22. return $files;
  23. closedir($handle);
  24. }
  25. // utilisation de la fonction avec des fichiers EXE
  26. $getFile = browse("./", "php" );
  27. foreach ($getFile as $myFile)
  28.     {echo $myFile."<br>";}
  29. $countFile = count($getFile);
  30. echo $countFile." fichier(s) trouvé(s)";
  31. ?>


 
Merci.


Message édité par Surfoo le 31-08-2004 à 19:01:00
Reply

Marsh Posté le 31-08-2004 à 18:59:49   

Reply

Marsh Posté le 01-09-2004 à 00:17:32    

Je verrais bien un truc du genre :

Code :
  1. if(is_dir($pDirectory.$file)){
  2. browse($pDirectory.$file, $pExtension);
  3. }


Inséré à la ligne 8 par exemple.
 
Ca reste à tester. :o


Message édité par kalex le 01-09-2004 à 00:17:46
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed