Probleme avec fopen et boucle

Recif
WRInaute impliqué
WRInaute impliqué
 
Messages: 816
Inscription: 25 Aoû 2004

Probleme avec fopen et boucle

Message le Sam Jan 22, 2011 12:41

Salut,

Je bute contre un problème depuis des heures... J'essaye d 'ouvrir plusieurs fichiers et de les traiter, mais seul le premier fichier est traité, le reste est tout simplement ignoré... Y a t-il une règle que je ne connais pas pour fopen()?

code simplifié:

Code: Tout sélectionner
$result1 = mysql_query("select fichier from alertes");
while (list($fichier) = mysql_fetch_row($result1)) {
   $file = fopen ("$fichier", "r");
               if (!$file) {
     echo "<p>Impossible de lire le fichier.\n";
     exit;
   }

while (!feof ($file)) {
    $line = fgets ($file);
    $content .= "$line";
}

echo $content
$content = "";
}



Des suggestions?... :(
Merci


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: Probleme avec fopen et boucle

Message le Sam Jan 22, 2011 13:01

Tu dois faire un fclose() du fichier aussi:
http://php.net/manual/fr/function.fopen.php

Plutôt que la boucle avec fopen()/fgets(), pourquoi ne pas utiliser directement file_get_contents() ?


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

Re: Probleme avec fopen et boucle

Message le Sam Jan 22, 2011 13:03

Là c'est un peu normal, vu comme tu as conçu ton algo. Tu as une seule variable $file et tu l'écrase à chaque passage. Et ensuite, tu fais un deuxième while pour traiter la valeur de $file, qui du coup ne correspond qu'à un seul de tes fichiers (le dernier passé en revu par le premier while).

Ah et +1 spout

Recif
WRInaute impliqué
WRInaute impliqué
 
Messages: 816
Inscription: 25 Aoû 2004

Re: Probleme avec fopen et boucle

Message le Sam Jan 22, 2011 13:21

Oui, j'ai oublié de mettre le fclose dans le post, mais il y est dans mon script.
Pour file_get_contents, comment lire le fichier ligne après ligne?...
Pour la variable $file, pas de problème si elle est écrasée, ça se passe après qu'elle soit traitée...


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

Re: Probleme avec fopen et boucle

Message le Sam Jan 22, 2011 13:24

Je me suis fait avoir par ton indentation en fait, j'avais raté une {.

file_get_contents lit le fichier d'une traite : http://php.net/manual/fr/function.file-get-contents.php

Recif
WRInaute impliqué
WRInaute impliqué
 
Messages: 816
Inscription: 25 Aoû 2004

Re: Probleme avec fopen et boucle

Message le Sam Jan 22, 2011 13:32

Oui, donc ca n'ira pas si je n'arrive pas à lire ligne par ligne malheureusement...


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

Re: Probleme avec fopen et boucle

Message le Sam Jan 22, 2011 13:48

Bein vu qu'au final tu concatènes toutes tes lignes les unes à la suite des autres pour faire un echo de la variable finale, je vois pas pourquoi ...

Recif
WRInaute impliqué
WRInaute impliqué
 
Messages: 816
Inscription: 25 Aoû 2004

Re: Probleme avec fopen et boucle

Message le Sam Jan 22, 2011 13:51

J'en ais besoin pour mon script, je dois analyser ligne par ligne pour faire une extraction de ce que je veux exactement... Mais peu importe pourquoi ;-) Je cherche pourquoi le contenu ligne par ligne, à partir du 2eme fichier, n'est plus renvoyé...

Recif
WRInaute impliqué
WRInaute impliqué
 
Messages: 816
Inscription: 25 Aoû 2004

Re: Probleme avec fopen et boucle

Message le Sam Jan 22, 2011 13:59

Oh yessssss! :-)
J'ai pas trouvé pourquoi, mais j'ai contourné mon probleme : la boucle while (feof... j'en ai fait une fonction que j'appelle à chaque while de l'enregistrement MySQL function recuplignes($file) { ... return $content } et ça marche! Il me récupère chaque contenu à chaque fois!!
Merci à ceux qui se sont penchés sur mon problème ;-)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités