Мне нужно работать с CSV-файлами. Я хочу написать веб-приложение, которое работает с CSV-файлами и написано на PHP.
Проблема в том, что все CSV-файлы имеют разные переводы строк / r, / n, / r / n /.
Мне нужно иметь то же самое во всех них.
До сих пор я делаю это так:
exec("sed -i 's/\r$//' files/uploads/$fileName"); // DOS to Unix
exec("sed -i 's/$/\r/' files/uploads/$fileName"); // Unix to DOS
И в конце концов все они имеют / р / н.
Но что, если я получу CSV-файл с / r в качестве перевода строки, как с этим бороться?
Спасибо за вашу помощь
У вас есть несколько вариантов прямо в php. Например:
$f=file_get_contents("files/uploads/$fileName");
$f=str_replace("\r","",$f);
file_put_contents("files/uploads/$filename",$f);
Это удалит все символы RETURN («\ r») из ввода и запишет файл обратно только с помощью перевода строки («\ n»).
Я до сих пор не видел файл CSV / Spreadsheet только с символами «\ r», но предположим, что вы также можете это сделать: str_replace («\ r», «\ n») и затем уменьшить «\ n \ n» в один «\ n» (снова используя str_replace).
Существует также решение на основе REGEX, но регулярная часть моего мозга немного жарена этим утром.
Других решений пока нет …