Probleme avec fopen et boucle

WRInaute impliqué
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:
$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
 
WRInaute accro
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
 
WRInaute impliqué
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...
 
WRInaute accro
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 ...
 
WRInaute impliqué
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é...
 
WRInaute impliqué
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 ;-)
 
Discussions similaires
Haut