0

次の形式の配列があります。これは基本的に、フォーマット済みの CSV 行の配列です。この例のキー 0 と 1 には、改行を含む CSV 値があります。

Array
(
    [0] => 'foo,foo,foo,foo
    bar,foo,a:1:{i:0;s:4:"blah";}'
    [1] => 'bar,bar,bar,bar
    foo,bar,a:1:{i:0;s:4:"blah";}'
    [1] => 'bar,bar,bar,foo,bar,a:1:{i:0;s:4:"blah";}'
)

私が次にやっていることは、それを\r\n接着剤として使用して内破し、CSV ファイルを生成してから書き出すことです。問題は、結果のファイルが改行を含むフィールドを二重引用符で囲んでいないため、改行が保持されることです (または、少なくとも私はそれを想定しています)。

生成された CSV ファイルはデータベースにアップロードされるか、Excel で編集されます。改行はフィールドで保持する必要があります。

適切な形式に展開した後に fputcsv を使用すると、改行があり、メモ帳などで表示されるが Excel で開いたときに表示されない二重引用符で囲まれた CSV が生成されます。

  $parent_wholelines = array();
  foreach ($output_array as $wholeline) {
    $parent_wholelines[] = explode(',', $wholeline);
  }
4

1 に答える 1

0

http://www.php.net/manual/en/function.fputcsv.phpからの1つのスニペットは、おそらくあなたを助けるかもしれません。または、serializeを使用します:http://php.net/manual/en/function.serialize.php

于 2011-07-21T19:04:00.490 に答える