Rechercher : dans
Par :

Boucle while PHP

Dernière réponse le 19 nov 2008 à 18:56:41 Math38420, le 19 nov 2008 à 17:53:08 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 3.0.4

Meilleures réponses pour « Boucle while PHP » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...

1

Alain_42, le 19 nov 2008 à 18:08:43

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>";
?>

Répondre à Alain_42

2

Math38420, le 19 nov 2008 à 18:21:50

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

Répondre à Math38420

4

Alain_42, le 19 nov 2008 à 18:35:45

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;

Répondre à Alain_42

3

hackeddb, le 19 nov 2008 à 18:24:50

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++;
}

Répondre à hackeddb

5

 Math38420, le 19 nov 2008 à 18:56:41

Ok d'accord.

Merci beacoup !!

Répondre à Math38420