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!
Partager