Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2007, 08h47   #1
Nouveau Membre du Club
 
Inscription : octobre 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : octobre 2005
Messages : 117
Points : 29
Points : 29
Par défaut Boucle while --> log d'erreur remplit --> plantage serveur

Bonjour à tous,

J'ai actuellement un problème avec un script PHP, en voici un extrait :

Code :
1
2
3
4
5
6
7
 
$url="http://www.domaine.com/fichier.csv";		
$fp = fopen($url, "r");
 
while (!feof($fp)) {											
	$ligne = fgets($fp,20480);									
	$liste = explode( ",",$ligne);
Il arrive quelques fois, que le script tourne en boucle en génerant les erreur suivantes :

Citation:
[Thu Nov 29 22:22:58 2007] [error] PHP Warning: fopen(http://www.domaine.com/fichier.csv) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: HTTP request failed! in tempsreel.php on line 119
[Thu Nov 29 22:22:58 2007] [error] PHP Warning: feof(): supplied argument is not a valid stream resource in tempsreel.php on line 121
[Thu Nov 29 22:22:58 2007] [error] PHP Warning: fgets(): supplied argument is not a valid stream resource in tempsreel.php on line 122
Les deux dernières erreur se répetent à l'infini, jusqu'au plantage du serveur parce que le log d'erreur atteint 15Go et remplit la partition système...

Que faire pour éviter que cette boucle ne tourne à l'infini ?? Merci !
JoN28fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 09h06   #2
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
Il suffit de rajouter une condition sur l'ouverture du fichier :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$url="http://www.domaine.com/fichier.csv";		
 
 
if(($fp = fopen($url, "r")) !== false) {
 
while (!feof($fp)) {											
	$ligne = fgets($fp,20480);									
	$liste = explode( ",",$ligne);
}
}
__________________
Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 09h41   #3
Nouveau Membre du Club
 
Inscription : octobre 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : octobre 2005
Messages : 117
Points : 29
Points : 29
Merci, comme d'habitude, la solution parait si simple lorsqu'on la voit !
JoN28fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h02.


 
 
 
 
Partenaires

Hébergement Web