IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] while(!feof())


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut [Tableaux] while(!feof())
    Salut

    Je veux lister chaque ligne d'un fichier texte. Donc voila mon code tout bête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
       $f = fopen('tempcode.txt', 'r');
     
          if ($f) {
     
             while (!feof($f)) {
     
                $ligne = trim(fgets($f, 4096));
     
                if (!empty($ligne)) {
     
                   $lignes[] = fgets($f, 4096);
     
                }
             }
     
          }
    Je vérifie donc que mes lignes ne soient pas des lignes vides. Mais ça ne fonctionne pas et je ne vois pas pourquoi: mon tableau est complété par certaine des lignes mais pas toutes. J'ai alors mis seulement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       $f = fopen('tempcode.txt', 'r');
     
          if ($f) {
     
             while (!feof($f)) {
     
                   $lignes[] = fgets($f, 4096);
     
             }
     
          }
    Et la tout est listé. D'ou vient cette sale erreur j'enrage devant des trucs comme ça

  2. #2
    Membre chevronné
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Points : 1 790
    Points
    1 790
    Par défaut
    Si j'ai bien compris ton post, tu souhaites ne conserver que les lignes non vides et les mettre dans un tableau ... si c'est le cas voici un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
       $lignes = array();
     
       if ($f = fopen('tempcode.txt', 'r')) 
       {  
          while (!feof($f)) 
          {
             $ligne = trim(fgets($f, 4096));
     
             if (strlen($ligne) != 0) 
             {
                array_push($lignes, $ligne);
             }
          }
       }
    ?>

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Merci c'est ça !
    Par contre je ne comprends pas mon code était bon ...

    A +

  4. #4
    Membre chevronné
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Points : 1 790
    Points
    1 790
    Par défaut
    Il y a un bug ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
             while (!feof($f)) {
     
                $ligne = trim(fgets($f, 4096));
     
                if (!empty($ligne)) {
     
                   $lignes[] = fgets($f, 4096);
     
                }
             }
    Tu lis une ligne que tu mets dans une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ligne = trim(fgets($f, 4096));
    Si ta ligne n'est pas vide tu lis la ligne suivante que tu insères dans ton tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                if (!empty($ligne)) {
     
                   $lignes[] = fgets($f, 4096);
     
                }
    Donc pas étonnant que ça merde

    Tu aurais pu écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                if (!empty($ligne)) {
     
                   $lignes[] = $ligne;
     
                }

  5. #5
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Citation Envoyé par eric190
    tu lis la ligne suivante que tu insères dans ton tableau
    Ah c'était ça !
    Bien joué
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] while avec odbc
    Par charlene44 dans le forum Langage
    Réponses: 3
    Dernier message: 13/04/2007, 14h48
  2. [Tableaux] boucle while
    Par dafalri dans le forum Langage
    Réponses: 8
    Dernier message: 24/02/2006, 10h52
  3. Réponses: 14
    Dernier message: 13/10/2005, 12h55
  4. [Tableaux] problème avec while
    Par zimotep dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2005, 10h30
  5. [Tableaux] Boucle while imbriquer
    Par Le-Cortex dans le forum Langage
    Réponses: 11
    Dernier message: 09/09/2005, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo