fputcsv и блокнот

Я генерирую CSV-файлы с помощью fputcsv, и он работает просто отлично, но при просмотре CSV-файла в Блокноте (Windows) новых строк нет. Все строки находятся всего в одной строке, и там, где предполагается разрыв строки, есть квадрат (поврежденный символ). Другие редакторы на Mac, например, показывают строки с разрывами правильно.

Есть ли способ решить эту проблему, поскольку CSV необходимо импортировать, и импортер также не видит разрывов строк.

3 ответа

Решение

Попробуйте использовать Notepad++, который обрабатывает \n переводы строки правильнее.

Также посмотрите этот ответ Inn fputcsv документация: http://lv.php.net/manual/en/function.fputcsv.php

http://bugs.php.net/bug.php?id=46367

Это известная и нефиксированная ошибка в PHP.

Пока они не исправят это, попробуйте использовать fwrite($fp, '"'.implode('","', str_replace('"', '""', $data_array)).'"'.PHP_EOL);

Положил \r\n до конца каждой строки в вашем коде.

Другое Быстрое Исправление: Откройте ваш сгенерированный файл в WordPad, он должен показать их нормально, нажмите Cntr+S и теперь откройте в блокноте, он также должен показать хорошо.

Редактировать:

Основываясь на комментариях ниже, просто измените ваш код следующим образом:

$orders_newlines = array();

foreach($orders as $value)
{
  $orders_newlines[] = $value . "\r\n";

}

Сейчас использую $orders_newlines переменная вместо $orders в вашей петле.

Надеюсь, это поможет.

Другие вопросы по тегам