CSV文字列を配列に変換することに関して問題があります。
INV;165;1;0;1 Username;0;10000;"Here is multiline-text.
with line-breaks:
";20 Offen;0,00
INV;166;1;0;1 Username2;0;10000;"Here is another multiline-text.
with line-breaks:
";20 Offen;0,00
str_getcsvを使用してフィールドを分割しようとしましたが、問題は、区切り文字が1つのフィールドでのみ発生し、関数が複数行フィールドも分割していることです。
私の解決策は、最初にpreg_replaceによって改行を変換することでしたが、私はそれには入りません。これが、;"と";で囲まれた改行のみを置き換える正規表現です。:
/(;")(.*)(\n)(.*)(";)/
このパターンは、実際には最初の改行にのみ一致します。誰かが私にこの仕事をするためのヒントを教えてもらえますか?
前もって感謝します。
元のCSVは次のとおりです。
CMXINV;165;1;0;1 Felix Hirschberg;0;10000;Herr;;Max;Muster;Company;;Street;123;City;DE;(0 40) 6 25 6;;(0 40) 6 25 6;mail@muster.de;;;;;;;;0;20121217;20121217;1 Sofort ohne Abzug;EUR;1 Agentur;0 ;0,00;;"Vielen Dank für Ihren Auftrag.
Vereinbarungsgemäß berechnen wir Ihnen:
";"Mit besten Grüßen
Invoice Man";;0;0;0;0;;20 Offen;0,00;;0 ;0,00;0,00;;EXW;;;;;;;;;;;;;;;;2;;Project: Test-Project;;0,000;0,00;1,000;0,00;0,00;0;0;0;0;0
CMXINV;165;2;0;1 Felix Hirschberg;0;10000;Herr;;Max;Muster;Company;;Street;123;City;DE;(0 40) 6 25 6;;(0 40) 6 25 6;mail@muster.de;;;;;;;;0;20121217;20121217;1 Sofort ohne Abzug;EUR;1 Agentur;0 ;0,00;;"Vielen Dank für Ihren Auftrag.
Vereinbarungsgemäß berechnen wir Ihnen:
";"Mit besten Grüßen
Invoice Man";;0;0;0;0;;20 Offen;0,00;;0 ;0,00;0,00;;EXW;;;;;;;;;;;;;;;;0;1;"- job1 (1h)
- job2 (1h)
- job3 (0,75h)
- job4 (1h)
- job5 (0,5h)";HR;3,25;100,00;1,00;0,00;325,00;1;0;0;0;0
MESSAGE;S;210053;INVOICE_GET hat 1 Datensätze zurückgegeben
MESSAGE;S;204020;Datenübertragung erfolgreich. Es wurden 1 Datensätze verarbeitet.