Salut,
je dois faire un import dans une table mysql d'un fichier qui n'est pas au format csv standard, voici 2 lignes d'exemple:
id=firewall time="2006-07-02 23:59:28" fw="xxx" tz=+0000 startime="2006-07-02 23:57:28" pri=5 slotlevel=2 ruleid=1 srcif="Ethernet1" srcifname="in" ipproto=udp proto=snmp src=10.10.10.10 srcport=2419 dst=10.10.10.10 dstport=161 dstportname=snmp sent=44 rcvd=95 duration=0.00 logtype="connection"
id=firewall time="2006-07-02 22:32:59" fw="xxx" tz=+0000 startime="2006-07-02 22:30:59" pri=5 slotlevel=2 ruleid=14 srcif="Ethernet0" srcifname="out" ipproto=udp dstif="Ethernet1" dstifname="in" proto=snmp src=10.10.10.10 srcport=2420 dst=10.10.10.10 dstport=161 dstportname=snmp dstname=net_printers sent=43 rcvd=53 duration=0.00 logtype="connection"
j'ai 2 problemes:
1) les champs ne sont pas au format csv: j'ai un nom_du_champ=une valeure, avec parfois des "".
J'ai déjà essayé de faire un script php qui vire les 'nom_du_champ=', mais j'ai un autre probleme:
2) d'une ligne à l'autre le nombre de champs n'est pas le meme: 20 pour la premiere ligne, 23 pour la seconde.
j'ai aussi essayé de faire ue requete sql du genre: INSERT INTO `log_table` SET id=firewall time="2006-[...]logtype="connection" dans une table avec le maximum de champs (23), mais je dois modifier chaque lignes afin de remplacer les espaces par des ',' et d'ajouter des `` pour le nom du champ et des '' pour les valeures, mais c'est un peu trop compliqué pour moi
J'espere que ma problématique est bien expliqué...
si vous avez une piste.
Merci pour votre aide!