Маловероятно, что FTP "поместит все в одну строку".Скорее всего, файл использует окончания строки в стиле * nix, и вы загрузили файл в двоичном режиме на компьютер с Windows или что-то в этом роде.
Видите ли, разные платформы имеют разные последовательности символов для представления "нового"линия".В Windows это обычно CR
+ LF
, а в * nix это просто LF
.Проблема заключается в том, что многие программы предполагают, что в конце текстового файла должна стоять строка, и если он видит символ LF
, он не видит его как символ новой строки.Так что все выглядит так, как будто это на одной линии.(Я не думал, что PHP так сильно разбирается в окончаниях строк, но я видел другие языки, которые сходят с ума по этому поводу.)
Бинарный режим передает файл байт за байтом и не конвертирует окончания строк,Что здорово, если вы загружаете или загружаете изображение или что-то в этом роде.Но если вы переносите текстовые файлы в двоичном режиме между машинами под управлением разных ОС, вы, скорее всего, увидите результаты «неправильных» окончаний строк.
Решение : Использовать режим ASCII для файлов PHP.Большинство FTP-клиентов имеют настройки для того, какой режим использовать и даже какой режим использовать для определенных типов файлов.Поскольку файлы PHP являются текстовыми, в большинстве случаев их, вероятно, следует передавать в режиме ASCII.