1

これがcsv文字列に含まれていることを確認しましょう(cURL出力から取得):

"name";"gender";"address";"phone";\n
"John Doe"; "Male"; "Broke Street\n No. 69 South Pole";"911";\n

そのようなもので、私はexplodeを使用して行ごとに移動しますが、新しい行にも\ nを使用するフィールドがあるため、配列インデックスが台無しになります。どうすればこれを回避できますか、アイデアはありますか?

4

3 に答える 3

2

その場合、それはひどく生成された/破損した.csvです。フィールドに改行が含まれている場合は"、csvパーサーが改行と改行を区別できるように、フィールドを囲む必要があります。 -改行が離れています。

吐き出されるゴミを処理しようとするのではなく、csvを生成しているものを修正します。

于 2012-09-03T03:13:26.147 に答える
0

AtmImはstr_replaceを使用して'";\n'を'";#n'またはその他の好きなものに置き換え、explodeを使用して#n区切り文字を分割してすべての行を取得します。

私はそれが今私のために働くものだと思います。

于 2012-09-07T08:18:42.217 に答える
0

あなたの場合、それは不正な形式のcsvです。

実際には、preg_match_allを使用して、csvであるかどうかを気にせずに、そのファイルを解析できます。

例:preg_match('#([^;] +);([^;] +);([^;] +);([^;] +)\ s?#'、$ csv_file_content、$ matches);

于 2012-09-03T03:20:48.660 に答える