CSVs без кавычек, не работающих с fgetcsv

Я пытаюсь проанализировать файлы CSV, загруженные пользователем через PHP, но он не работает правильно.

Я загрузил, несколько правильно отформатировали CSVs, и он хорошо работал, однако; у меня есть многие пользователи, пытающиеся импортировать файлы CSV, экспортируемые из Excel, и у них есть проблемы. Я сравнил файлы с шахтой и заметил, что файлы Excel все отсутствие заключают в кавычки вокруг записей. Кроме этого, они идентичны. Если я открываю его и сохраняю его с, Открывают Office, не внося изменений вообще это работает. Таким образом, я вполне уверен, что это связано с кавычками.

Мой вопрос; как я читаю, они неправильно отформатировали CSVs?

ОБНОВЛЕНИЕ: Причина была найдена!

Это характерно для версии Mac Excel. Разрывы строки обрабатываются по-другому на Mac по некоторой произвольной причине, таким образом, перед использованием fgetcsv, необходимо сделать это;

ini_set('auto_detect_line_endings',TRUE);
12
задан pnuts 4 September 2015 в 03:30
поделиться

2 ответа

Это специфично для Mac-версии Excel. По какой-то произвольной причине переносы строк на Mac обрабатываются по-другому, поэтому перед использованием fgetcsv следует сделать так;

ini_set('auto_detect_line_endings',TRUE);
22
ответ дан 2 December 2019 в 06:44
поделиться

Глядя на страницу руководства для ] fgetcsv , его прототип выглядит так:

array fgetcsv  ( resource $handle  [, int $length  
    [, string $delimiter = ','  [, string $enclosure = '"' 
    [, string $escape = '\\'  ]]]] )

Значение по умолчанию для $ enclosure (т.е. 4-й параметр) - это двойные кавычки.

Что, если вы попытаетесь указать, что вам не нужно какое-либо вложение, указав пустую строку для этого 4-го параметра?

(Конечно, это может нарушить то, что сейчас работает - а это значит, что вам придется иметь дело два отдельных случая: файлы с полями, заключенными в двойные кавычки, и файлы, которые не могут быть прочитаны в первом случае)

1
ответ дан 2 December 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: