Probleme de fonction fgetc

Signaler
Messages postés
389
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
17 décembre 2004
-
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010
-
Maximum execution time of 30 seconds exceeded
sur cette ligne:
$caractere=fgetc($fichier);

voila le code au complet :

<?
if($fichier=fopen("test.txt","r"))
{
while(!feof($fichier))
{
$ligne=fgets($fichier,255);
$separation=-1;
do{
$separation++;
$caractere=fgetc($fichier);
}while($caractere!=';');
$nom=$ligne.substr(0,$separation);
$separation=-1;
do{
$separation++;
$caractere=fgetc($fichier);
}while($caractere!=';');
$prenom=$ligne.substr($nom.length+1,$separation);
$separation=-1;
do{
$separation++;
$caractere=fgetc($fichier);
}while($caractere!=';');
$adresse=$ligne.substr($nom.length+$prenom.length+2,$separation);
$separation=-1;
do{
$separation++;
$caractere=fgetc($fichier);
}while($caractere!=';');
$code=$ligne.substr($nom.length+$prenom.length+$adresse.length+3,$separation);
$separation=-1;
do{
$separation++;
$caractere=fgetc($fichier);
}while($caractere!=';');
$ville=$ligne.substr($nom.length+$prenom.length+$adresse.length+$code.length+4,$separation);
echo "Nom: $nom
Prenom: $prenom
Adresse: $adresse
Code Postal: $code
Ville: $ville
";
}
fclose($fichier);
}
else
{
echo "Erreur d'ouveture";
}
?>

d ou vien le probleme ? merci

www.morgan06.fr.fm

1 réponse

Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010

Tu fait un fgets puis des fgetc. Il me semble (je me trompe peut etre) que fgets fait avancer le pointeur de fichier donc tes fgetc ne lisent pas la même chose (ce n'est pas ce qui est dans $ligne)

Tu fait une boucle avec test sur la fin de fichier mais dans le boucle tu fait tout un tas de lectures, ca risque de poser problème (ex : au dernier tour de boucle il reste 3 caractères, ce n'est pas la fin du fichier j'entre dans la boucle, si j'essaye de lire 6 caractètres je risque d'avoir un problème).

Tu utilise des while($caractere!=';'), si jamais il ne trouve pas le caractere ';' il va boucler a l'infini, il te faut une autre condition.

Je ne sais pas si ca va résoudre ton problème mais ca t'évitera d'en avoir d'autres.

?-) Grrrrrrrrrrr ?-)