Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 05/11/2009, 20h05   #1
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 801
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 801
Points : 587
Points : 587
Par défaut Lecture difficile d'un fichier CSV

Bonsoir,

Je lis un fichier CSV et il fait bien une cinquantaine d'enregistrement puis il boucle.

Je suis obligé d'arrêter firefox, puis de le relancer.

Je relance le traitement et à nouveau une cinquantaine.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
if (!$file = fopen($fileinput, "r"))
		{
			echo "Echec de l'ouverture du fichier";
			return false;
		}
 
		if ($file)
		{
			while (!feof($file))
			{
				$contenu = explode($prestataire['prest_lap_format_separateur'], fgets ($file, 4096));
}
}
C'est étrange et je ne vois pas pourquoi.

Une idée ?

Merci d'avance.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2009, 23h25   #2
Membre du Club
 
Inscription : janvier 2006
Messages : 74
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2006
Messages : 74
Points : 69
Points : 69
Envoyer un message via MSN à {Anthony}
Bonsoir,

Ca n'explique pas pourquoi vous avez ce problème mais peut-être pourriez vous essayer une méthode alternative :

Code php :
1
2
3
4
5
6
7
8
 
 
$csv = file_get_contents($fileinput);
 
$csvLines= explode("\n", $csv);
foreach ($csvLines as $csvLine) {
    $contenu = explode($prestataire['prest_lap_format_separateur'], $csvLine);
}
{Anthony} est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2009, 14h52   #3
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 801
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 801
Points : 587
Points : 587
Merci,

J'ai essayé, mais le problème persiste.

au delà de 40 enregistrements traités, il boucle.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2009, 15h10   #4
Membre éprouvé
 
Avatar de guigo
 
Inscription : juin 2006
Messages : 606
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 606
Points : 479
Points : 479
Bonjour Lodan,
Peux tu preciser sur il boucle ?
guigo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2009, 15h56   #5
Membre actif
 
Avatar de JmL40
 
Inscription : mai 2007
Messages : 305
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 305
Points : 189
Points : 189
Envoyer un message via MSN à JmL40
Salut,

Pourquoi tu n'utilises pas la fonction fgetcsv, fonction dédiée à la lecture d'une ligne d'un fichier csv!

http://php.net/manual/fr/function.fgetcsv.php

De plus, il faut faire attention au contenu du fichier CSV, une ligne peut ne pas avoir de contenu mais être considérée comme telle à la lecture par ces fonctions.

Cordialement
__________________
while (true) echo 'comique';
Du comique de répétition ...
Pour des questions de lisibilité, utilisez la balise [code]
Si votre problème est résolu, n'oubliez pas le tag
JmL40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2009, 18h29   #6
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 801
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 801
Points : 587
Points : 587
J'ai l'impression qu'il boucle, parcequ'il ne met plus à jour la table MySql et qu'il reste des enregistrements dans le fichier CSV.

J'ai le même script pour lire des fichiers TXT et il me fait le même problème.

J'ai mis ça pour voir s'il y avait quelque chose, mais non.

Code :
1
2
3
ini_set("log_errors", 1);
ini_set("display_errors", 1);
error_reporting(E_ALL);
Il me crée 45 enregistrements, et plus rien. Quand je dis plus rien, firefox tourne mais il ne se passe plus rien.

Si je laisse l'exécution trop longtemps, je suis obligé de tuer firefox
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2009, 09h50   #7
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 801
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 801
Points : 587
Points : 587
Bon, il y avait une erreur sur un champ inexistant au moment de la création de l'enregistrement.

Cette erreur n'était pas bloquante pour les 45 1er enregistrement et après il bloquait.

J'ai mis une initialisation du champ et tout fonctionne.

ça me paraît bizarre, mais c'est un constat.

Merci pour votre accompagnement.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan 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 +1. Il est actuellement 01h25.


 
 
 
 
Partenaires

Hébergement Web