Probleme de fonction fgetc

morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 - 11 avril 2004 à 15:57
gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010 - 11 avril 2004 à 17:57
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

gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
11 avril 2004 à 17:57
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 ?-)
0
Rejoignez-nous