Undefined offset avec explode()

Résolu
theghz -  
 theghz -
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   Statut Membre Dernière intervention   100
 
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
theghz
 
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   Statut Membre Dernière intervention   100
 
Merci pour la correction j'ai tapé trop vite, c'est corrigé
0
theghz
 
Merci c testé avec artichow et ça marche nikel :)
thx
0