これがcsv文字列に含まれていることを確認しましょう(cURL出力から取得):
"name";"gender";"address";"phone";\n
"John Doe"; "Male"; "Broke Street\n No. 69 South Pole";"911";\n
そのようなもので、私はexplodeを使用して行ごとに移動しますが、新しい行にも\ nを使用するフィールドがあるため、配列インデックスが台無しになります。どうすればこれを回避できますか、アイデアはありますか?
その場合、それはひどく生成された/破損した.csvです。フィールドに改行が含まれている場合は"、csvパーサーが改行と改行を区別できるように、フィールドを囲む必要があります。 -改行が離れています。
吐き出されるゴミを処理しようとするのではなく、csvを生成しているものを修正します。
AtmImはstr_replaceを使用して'";\n'を'";#n'またはその他の好きなものに置き換え、explodeを使用して#n区切り文字を分割してすべての行を取得します。
私はそれが今私のために働くものだと思います。
あなたの場合、それは不正な形式のcsvです。
実際には、preg_match_allを使用して、csvであるかどうかを気にせずに、そのファイルを解析できます。
例:preg_match('#([^;] +);([^;] +);([^;] +);([^;] +)\ s?#'、$ csv_file_content、$ matches);