[php] problemen met quotes bij import csv file

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 22-09 18:32

HenkS

Da_king alias HenkS

Topicstarter
Hallo,

Voor een klant moeten wij drukwerk maken, hiervoor krijgen wij verschillende grafische bestanden aangeleverd en ook variabele data die dan gezamenlijk naar een digitale printer worden gestuurd.

nu zijn de .csv bestanden vrij groot (40mb+) met veel data. Ik ben een script aan het maken dat ik alleen de benodigde velden uitlees en vervolgens in mysql inlees. Zodat we vervolgens met de benodigde querys de data die op moment x nodig is, eruit kunnen halen.

het bedrijf wat de .csv bestanden aanleverd is geen IT bedrijf, dus ik kan niet verwachten dat ze echt aanpassingen in deze files gaan doen. Ik moet het dus in feite doen met wat ik krijg.

1 regel in het bestand ziet er bijvoorbeeld zo uit:
938248246,"1452838","M.","Bruno","Isaia","","French","Denso Jaguar XJ","","T1000-12774","Western Europe","80593","","1939301","04/07/2008 15:55:11","French","","","11, Corniche du Porteau",""," ","Pornic","44","","44210","FRANCE"

Nu is het al niet zo handig dat het 1e veld niet door quotes is omsloten en de rest wel.

echter gaat het probleem om het adres veld (11, Corniche du Porteau). Voor bijna alle andere landen staat er een adres notatie zoals wij kennen: "jantjeslaan 11"

Nu had ik in mijn script dat ik met een explode functie (dmv de ,) de velden splits, de goede velden uit de array selecteer (omdat ik ze niet allemaal nodig heb), vervolgens in een query zet in inlees in de database.

Doordat in het adresveld een komma zit, klopt de array niet meer omdat ik explode op de comma. Ik heb geen idee hoe ik dit anders moet doen. Ik hoef geen oplossing, maar bijvoorbeeld een richting waarin ik moet denken of klein beetje hulp.

alvast bedankt

groetjes

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Waarom gebruik je geen functie voor het parsen van CSV files? fgetcsv werkt bij mij altijd perfect.

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31

Bosmonster

*zucht*

Quotes zijn niet verplicht bij CSV. Ipv zelf te exploden, gebruik inderdaad de CSV functie die Cartman aangeeft, die houdt rekening met al die dingen voor je.

Al zou het wel mooier zijn als ze kunnen aanleveren in XML natuurlijk. CSV is niet echt meer van deze tijd.

[ Voor 25% gewijzigd door Bosmonster op 28-04-2009 12:24 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Bij het parsen van CSV zul je inderdaad niet zomaar kunnen splitsen op de komma aangezien die ook in de velden voor kunnen komen. Tijdens het splitsen zul je dus wat state bij moeten houden. Met een loop waarin je bijhoud of je tussen quotes zit, ben je al een heel eind.

Maar zoals hierboven gemeld is het natuurlijk het makkelijkst om gewoon een bestaand goed werkend component te pakken die het voor je afhandeld.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”