CSV-строки в array (), необходимо сохранить разрывы строк - PullRequest
0 голосов
/ 21 июля 2011

У меня есть массив в следующем формате - по сути, это массив предварительно отформатированных строк 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 после перехода в нужный формат генерирует CSV, который имеет разрыв строки и заключен в двойные кавычки при просмотре в Блокноте или аналогичных файлах, но не при открытии в Excel.

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

1 Ответ

0 голосов
/ 21 июля 2011

Один фрагмент из http://www.php.net/manual/en/function.fputcsv.php, может быть, может помочь вам. ИЛИ получить использование сериализации: http://php.net/manual/en/function.serialize.php

...