Probléme function PHP

lirycs78 Messages postés 106 Statut Membre -  
lirycs78 Messages postés 106 Statut Membre -
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.
A voir également:

11 réponses

Fallentree Messages postés 2445 Statut Membre 209
 
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
lirycs78 Messages postés 106 Statut Membre 1
 
Oups il sert a rien xD thx
0
lirycs78 Messages postés 106 Statut Membre 1
 
Jai pas bien compris ton code en faite :/
0
Fallentree Messages postés 2445 Statut Membre 209
 
tu as corrigé la récursivité. Et ça marche pas ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lirycs78 Messages postés 106 Statut Membre 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
Fallentree Messages postés 2445 Statut Membre 209
 
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
lirycs78 Messages postés 106 Statut Membre 1
 
oép j'avais compris le souci, mais je vois pas comment recoder ma function :/
0
Fallentree Messages postés 2445 Statut Membre 209
 
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
Fallentree Messages postés 2445 Statut Membre 209
 
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
lirycs78 Messages postés 106 Statut Membre 1
 
Franchement stp tu ne peut pas me la coder rapidement parceque la je suis pommer je vois pas comment faire.
STP
0
lirycs78 Messages postés 106 Statut Membre 1
 
Oups ! Ok j'avais pas vu ta reponse, houps merci, Houps tkt pas je chercher aussi :) Houps merci :D
0