Я импорт CSV с помощью PHP и так как CSV иногда может быть большим, что я делаю так потоковым файлу 4096 байт, в то время с помощью следующего кода:PHP fgetcsv и пользовательский символ конца строки
if(($handle = fopen($file, 'r')) !== false)
{
// loop through the file line-by-line
while(($data = fgetcsv($handle)) !== false)
{
echo var_dump($data);
unset($data);
}
fclose($handle);
}
else
{
echo "unable to open file $file <br>";
}
Некоторые из csvs имеют нестандартный символ окончания строки ';' и мне нужно указать строку, заканчивающуюся вручную, чтобы fgetcsv правильно получал каждую строку csv.
Я прочитал другие решения, которые предлагают использовать INI настройки:
ini_set("auto_detect_line_endings", true);
Но это не решило проблему я получаю здесь.
Предыдущее решение этой проблемы состояло в том, чтобы получить весь файл и изменить все нестандартные концы строк и заменить их возвратом каретки и линейными каналами. Это решение больше недействительно по мере увеличения размера csvs.
То, что я получаю в дампе var, - это все строки csv, а не одна строка csv. Пример строки из CSV:
"col1,col2,col3,col4,col5;col1,col2,col3,col4,col5;col1,col2,col3,col4,col5;"
Пожалуйста, покажите небольшой пример того, как выглядит ваш файл csv – Rizier123