fgetcsv не может прочитать окончание строки в csv-файле, отформатированном в Mac, есть ли лучшее решение?

Я анализировал CSV-файл, используя php с функцией fgetcsv. Он проанализировал все содержимое в строке, позже я обнаружил, что CSV содержит возврат Carraige как "\r". Я видел - это было сообщено как ошибка PHP ранее. Я решил это, установив конфигурацию среды выполнения PHP, которая -

ini_set("auto_detect_line_endings", "1");

Есть ли еще решение или это правильный путь?

Спасибо

2 ответа

Настройка auto_detect_line_endings явно рекомендуется в документации php.

Тем не менее, я не могу понять, почему вы хотите разделить строки с \r в 2010 году. Если возможно, конвертируйте их в UNIX-стиль \n,

\r Окончания строк создаются Microsoft Excel при сохранении в виде файла CSV, поэтому при работе с электронной таблицей Excel не так уж много обойти это.

С помощью auto_detect_line_endings работает нормально, или вы можете нормализовать окончания строк с помощью preg_replace("/\r\n|\n\r|\n|\r/", "\n", $subject);

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