Posez votre question Signaler

Boucle while PHP [Résolu]

Math38420 181Messages postés 28 août 2008Date d'inscription 30 décembre 2010Dernière intervention - Dernière réponse le 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
Lire la suite 

Boucle while PHP »

5 réponses
Réponse
+0
moins plus
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>";
?>

Ajouter un commentaire
Réponse
+0
moins plus
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
Alain_42 - 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;
Ajouter un commentaire
Réponse
+0
moins plus
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++;
}
Ajouter un commentaire
Réponse
+0
moins plus
Ok d'accord.

Merci beacoup !!
Ajouter un commentaire
Ce document intitulé « Boucle while PHP » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook