Boucle while PHP

Résolu
Math38420 Messages postés 189 Statut Membre -  
Math38420 Messages postés 189 Statut Membre -
Bonjour,

J'ai cette boucle la :

while ($fichier[$i] = readdir($pointeur))
{

$i++;

}

le problème c'est que $fichier pour tous les indices me retourne 0. Comment faire pour qu'il me retourne la valeur de readdir($pointeur) ????

Merci pour vos réponses

4 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
Salut,

as tu fais opendir avant ?

a quoi correspond $pointeur ?
readir lit tout le repertoire


<?php
if ($handle = opendir('ton_repertoire')) {
    $i=0;
    $fichier=array();
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            $fichier[$i]=$file;
        }
        $i++;
    }
    closedir($handle);
}

//pour visualiser
echo "<pre>";
print_r($fichier);
echo "</pre>";
?>

0
Math38420 Messages postés 189 Statut Membre 7
 
Oui $pointeur était un opendir

Et ben c'est parfait merci beaucoup.

J'ai juste trois questions :

1 - A quoi sert cette ligne : if ($file != "." && $file != "..") ???

2 - Quel est l'intérêt du false dans cette ligne : while (false !== ($file = readdir($handle))) ???

3 - Qu'est qui n'allait pas dans mon code ????

Excuse moi de te poser toutes ces questions mais je commence en php et j'aimerais bien savoir ce qui va et ne va pas !!!!

Encore merci pour ce code
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Re,

1 - A quoi sert cette ligne : if ($file != "." && $file != "..") ???

c'est pour ne pas tenir compte des fichiers . et .. qui sont dans le repertoire en Unix

2 - Quel est l'intérêt du false dans cette ligne : while (false !== ($file = readdir($handle))) ???
c'est pour tester si la fonction readdrir marche

3 - Qu'est qui n'allait pas dans mon code ????

$pointeur: tu n'as pas choisi un nom parlant pour opendir ? ça n'empêche pas de fonctionner mais c'est plus facile à comprendre

tu n'avais pas mis $i=0;
0
hackeddb
 
déja la condition d'arret n'est pas existante
tu doit téster si la fin de fichier est atteinte.
while(!feof($fich))
{
//ton traitement
i++;
}
0
Math38420 Messages postés 189 Statut Membre 7
 
Ok d'accord.

Merci beacoup !!
0