Boucle while PHP

Résolu
Math38420 Messages postés 184 Date d'inscription   Statut Membre Dernière intervention   -  
Math38420 Messages postés 184 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   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 184 Date d'inscription   Statut Membre Dernière intervention   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 5361 Date d'inscription   Statut Membre Dernière intervention   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 184 Date d'inscription   Statut Membre Dernière intervention   7
 
Ok d'accord.

Merci beacoup !!
0