Boucle while PHP

Résolu/Fermé
Math38420 Messages postés 181 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 30 décembre 2010 - 19 nov. 2008 à 17:53
Math38420 Messages postés 181 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 30 décembre 2010 - 19 nov. 2008 à 18:56
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 nov. 2008 à 18:08
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 181 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 30 décembre 2010 7
19 nov. 2008 à 18:21
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 nov. 2008 à 18:35
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
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 181 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 30 décembre 2010 7
19 nov. 2008 à 18:56
Ok d'accord.

Merci beacoup !!
0