par
sadeq » 10 mai 2005, 13:25
Revois ton code :
...
$ligne = fgets($fp,4096); // On se déplace d'une ligne
// Les champs séparés par les caractères " et , on éclate la chaine de caractère pour supprimer le caractère " et on en fait un tableau
$liste = explode('"' , $ligne);
//On affiche les 2 premiers parametres.
echo "Param1: ".$liste[1]." Param2: ".$liste[3]."<br>";
...
tu fais un echo de l'offset 1 et 3 du tableau $liste créé par l'explode, mais tu n'es même pas sure qu'un des explodes puisse créer les créer et notamment la dernière lecture dans le fichier qui atteint EOF.
Quand un FGETS atteint EOF il retourne null ce qui veut dire que la dernière $liste que tu explode est nulle (les offset 1 et 3 n'existe alors pas)
Pour passer ce problème logique il faut tester $liste après la lecture FGETS. Et ce n'est pas terminé pour toi, il faut aussi s'assurer que la longueur de $liste dépasse l'offset 3 que tu utilise dans l'echo.
Correction :
...
$ligne = fgets($fp,4096); // On se déplace d'une ligne
// Les champs séparés par les caractères " et , on éclate la chaine de caractère pour supprimer le caractère " et on en fait un tableau
$liste = explode('"' , $ligne);
//On affiche les 2 premiers parametres.
if ($liste != null && count($liste) > 3) {
echo "Param1: ".$liste[1]." Param2: ".$liste
[3]."<br>";
}
....