Undefined offset avec explode()

Résolu/Fermé
theghz - 20 mai 2008 à 12:46
 theghz - 20 mai 2008 à 13:11
Bonjour,
j'ai un petit soucis à extraire des infos d'un fichier txt. Je m'explique, dans un fichier txt j'ai un tableau le séparateur étant la virgule ",". J'ai trouvé sur le net que la fonction explode permet ceci, l'ennui est que moi je veux extraire la seconde colonne (et donc le 2ème champ de chaque ligne de mon fichier texte). le script semble fonctionner (et pas en mm temp) car il me retourne bien la colonne en question mais en bas de page j'ai le fameux "Notice: Undefined offset: 1 in c:\program files\easyphp1-8\www\....... on line 39"

ce qui correspond à :
38;; $tab= explode(",", $data[$d]);
39;; $numVal=$tab[1];
40;; print $numVal . "<br>";

^_ (cette colonne je l'ai écrite juste pour numéroter les lignes pour vous)

j'ai trouvé sur le net qu'en utilisant "@" avant la commande ça cachera l'erreur, sauf que moi après je veux dessiner un graphe à partir des données collectées avec artichow, et ça aussi me retourne la même erreur, une erreur que "@" ne règle pas.
Please help me :(

3 réponses

Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
20 mai 2008 à 12:57
Salut,

Ta boucle qui lit le fichier lit peut-etre une ligne de trop (par exemple s'il y a une ligne vide à la fin de ton fichier) et tu essaies dans ton script de couper cette ligne en morceau.

Tu peux procéder de plusieurs facons
- verifier ton fichier texte
- modifier ta boucle de lecture afin de ne pas traiter des lignes non valides

par exemple entre les ligne 38 et 39 tu vérifies que $tab est bien un tableau et que l'index 1 existe avec un
if(is_array($tab) && isset($tab[1]) { ... }
3
merci ça résoud mon probleme :) (j'ai pas encore testé avec artichow mais je le ferai tout de suite et je vous tiens au courant)

PS:pr la 2ème condition du if c'est "isset" et pas "is_set" ;)
0
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
20 mai 2008 à 13:06
Merci pour la correction j'ai tapé trop vite, c'est corrigé
0
Merci c testé avec artichow et ça marche nikel :)
thx
0