[PHP] CSV naar Mysql, met 'Veld a','Veld b','Veld ct

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Na een beetje zoeken op dit forum wat betreft het importeren van CSV bestanden naar een MySQL database met behulp van PHP kwam ik erachter dat hier kant & klare oplossingen en functies voor zijn. Er is daar alleen wat 1 nadeel aan: In al deze scripts word vaak op de komma of puntkomma ge"seperate".

Ik wil het ietjes anders. Ik heb mij data alsvolgt:
'Velda','Veldb','Veldc'
dit is omdat er in de veldnamen komma's en puntkomma's voorkomen.
nu is daar in phpmyadmin een hele mooie optie voor, maar ik wil iets soortgelijks met php creeëren. Nu vroeg ik mij dus af: is dit mogelijk?

Ik heb nu met str-replace alles omgezet naar een HTML-tabel, die ik met Excel omzet naar een goede .csv en vervolgens in een database importeer, niet echt een optie ;)

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Dat is inderdaad niet echt een optie. Wat ik in het verleden wel eens heb gedaan is de csv regel voor regel inlezen (dus exploden op '\n of '\r\n, met een check of het aantal velden per regel wel klopt) de ',' vervangen door een delimiter als %%DELIM%%, de eerste ' van de regel weghalen en dan die regel exploden op %%DELIM%%. Dan kan je in principe alles doen wat je wil via PHP. :) omslachtig is het wel, maar ik had op een gegeven moment ook data vanuit verschillende bronnen met verschillende delimiters.

Sundown Circus


Acties:
  • 0 Henk 'm!

  • Huppie
  • Registratie: Mei 2003
  • Laatst online: 02-09 09:59
Ik zou het zelf doen met preg_match_all() en een regex pattroon.
PHP:
1
2
3
<php
    preg_match_all( "/'(.*?)'([,]{0,1})/", $jouwdata, $stukjes );
?>


edit:
De oplossing hieronder is beter tho :)

[ Voor 21% gewijzigd door Huppie op 06-09-2005 10:34 ]

Proud member of TCF - D2OL is zooooo 2005


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Wat wil je dat niet met www.php.net/fgetcsv en www.php.net/fputcsv kan?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil het dus zo parsen, dat fgetcsv en fputcsv eindelijk snappen dat er nog quotes om mijn velden staan :)

Nu kappen ze het af op de komma, waar door je velden krijgt die door de helft zijn gechopped

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Verwijderd schreef op dinsdag 06 september 2005 @ 11:10:
Ik wil het dus zo parsen, dat fgetcsv en fputcsv eindelijk snappen dat er nog quotes om mijn velden staan :)
enclosure (Optional)

Set the field enclosure character (one character only). Defaults as a double quotation mark. Added in PHP 4.3.0.
Dat kan toch al?
Pagina: 1