Guten Abend,
ich sitze nun schon seit ein paar Stunden und noch mehr Stunden google, weil ich dachte, das Problem muss doch schonmal jemand gehabt haben, aber bisher vergeblich.
Ich habe also eine (momentan 80MB, kann aber noch viel größer werden) CSV Datei in folgendem Format:
und so weiter. Das Ganze möchte ich nun möglichst in ein array bzw. im Endeffekt in eine Datenbank packen.
Normale CSV Funktionen kann ich nicht nutzen, weil es nicht in einer Zeile steht. Also muss ein regex her. Dann müssen escapede Anführungszeichen und Samikola innerhalb von Anführungszeichen "ignoriert" werden.
Also bisher hab ich das hier, aber da kommt nur Müll raus:
(ja, das [code] Tag is Absicht, das PHP Tag klaut Backslashes...)
Alle anderen Ansätze kommen mir mit timeout (300 seconds) oder sonstige Fehler...
Hier gabs auch noch 'nen interessanten Ansatz:
http://www.programmersheaven.com/use...SV-with-regex/
Aber da wird leider nicht berücksichtigt, dass man die Zeichen escapen kann.
Jemand 'ne Idee?
ich sitze nun schon seit ein paar Stunden und noch mehr Stunden google, weil ich dachte, das Problem muss doch schonmal jemand gehabt haben, aber bisher vergeblich.
Ich habe also eine (momentan 80MB, kann aber noch viel größer werden) CSV Datei in folgendem Format:
Code:
spalte1;spalte2;spalte3;"<html> <head> blabla </head> <body> <a href=\"index.php\">Linktitel</a> <script> variable1 = \"wert1\"; </body>";spalte5;spalte6 zeile2Spalte1;zeile2Spalte2;
Normale CSV Funktionen kann ich nicht nutzen, weil es nicht in einer Zeile steht. Also muss ein regex her. Dann müssen escapede Anführungszeichen und Samikola innerhalb von Anführungszeichen "ignoriert" werden.
Also bisher hab ich das hier, aber da kommt nur Müll raus:
Code:
preg_match_all('§([^"])*;|(\"(((?<=\\\\)\")|[^"])*(?<!\\\\)\")§imsU', $csvdata, $matches);
Alle anderen Ansätze kommen mir mit timeout (300 seconds) oder sonstige Fehler...
Hier gabs auch noch 'nen interessanten Ansatz:
http://www.programmersheaven.com/use...SV-with-regex/
Aber da wird leider nicht berücksichtigt, dass man die Zeichen escapen kann.
Jemand 'ne Idee?
Kommentar