Как использовать перевод строки в файле CSV? - PullRequest
0 голосов
/ 12 сентября 2011

У меня есть файл Excel, который я преобразовал в CSV, чтобы он мог быть проанализирован в PHP.Однако по какой-то причине ячейки в Excel имеют только возврат каретки (\ r) и не переводят строки (\ n).Мне нужны переводы строк в csv, иначе PHP разбирает все в одной строке, чего не следует делать.

Есть ли способ добавить перевод строки в файл excel / csv?

Спасибо!

РЕДАКТИРОВАТЬ: Казалось бы, я экспортировал файл как неправильный CSV - я не делал Windows с разделителями-запятыми.Спасибо за ответы, ребята.

Ответы [ 2 ]

2 голосов
/ 12 сентября 2011

Прежде чем читать файл CSV, выполните:

ini_set('auto_detect_line_endings', true);

Затем установите значение false сразу после чтения файла.

Из руководства :

Это позволяет PHP взаимодействовать с системами Macintosh, но по умолчанию отключено, так как при обнаружении соглашений EOL для первой строки очень небольшое снижение производительности, а также потому, что люди используют возврат кареткипоскольку разделители элементов в системах Unix будут иметь несовместимое поведение.

2 голосов
/ 12 сентября 2011

Есть несколько способов справиться с этим.В PHP проще всего было бы просто заменить \r на \n перед его обработкой:

// Load the whole data file as a string
$data = file_get_contents("yourcsv.csv");
$data = str_replace("\r","\n", $data);

// use str_getcsv() in PHP 5.3+ to parse it to an array
$csv_array = str_getcsv($data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...