Измените перевод строки файла CSV на тот же

Мне нужно работать с 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 в качестве перевода строки, как с этим бороться?

Спасибо за вашу помощь

0

Решение

У вас есть несколько вариантов прямо в 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, но регулярная часть моего мозга немного жарена этим утром.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]