Puste linie w pliku PHP (w źródle) oraz przy echo

Nie wiem, czy dobrze przyporządkowałem problem do działu, bo jest mocno dziwny.

Mam plik PHP:

<?php

$zmienna = "cos";

//reszta kodu, która nie ma znaczenia

//jest go kilka linijek

?>

Tak wygląda przykładowy plik, który mam na serwerze i edytuję go PHPDesignerem zdalnie. Następnie kopiuje ten plik na dysk i ku mojemu zdziwieniu wygląda on następująco (w tym samym edytorze):

<?php


$zmienna = "cos";


//reszta kodu, która nie ma znaczenia


//jest go kilka linijek


?>

Jakby ktoś nie zrozumiał, chodzi o dodatkowe puste linie. Wrzucam ten plik (z pustymi liniami) ponownie na serwer, otwieram zdalnie i znów pustych linii nie ma. Powtarzam ten cykl kilka razy, ciągle ten sam efekt. W końcu plik z komputera (z pustymi liniami) wrzucam na ten sam serwer, ale do innego katalogu, zgrywam ponownie na komputer i…wolnych linii brak. Magia. Nie jest to wyłącznie problem natury wizualnej w edytorze. Mam także plik JavaScript który pobiera zawartość pliku php (czyli to co ‘wyechuje’) i sprawdza ifem

if(data == "cos") { alert ("ok"); }

Odpaliłem WebServa u siebie na komputerze i wrzuciłem do niego 2 wersje mojego pliku (tą z wolnymi liniami oraz tą zgraną z innego miejsca serwera, gdzie pustych linii brak). W wersji pustoliniowej JS nie wyświetla alertu, natomiast w normalnej wersji wszystko działa jak należy (zarówno na serwerze, jak i webservie). Podglądając dane w konsoli FireBuga zauważyłem, że tekst odbierany od PHP faktycznie ma wstawione (w wer. pustoliniowej) puste linie przed faktycznym tekstem wyechowanym, tj:

zamiast:

Pliki są zapisane jako Windows/UTF-8 bez BOM. Sytuacja powtarza się z 90% plików w ferelnym katalogu na serwerze (o dziwo niektóre przegrywają się na komputer normalnie, zawsze te same). Jakieś sugestie co może być tego przyczyną?

zapisz pliki z załamaniem linii unix. miałem podobny problem kiedy zapisywałem jako windows

Faktycznie wygląda jakby pomogło. Dzięki.

Zastanawiające jest jednak dla mnie skąd takie numery, zwłaszcza że jest zupełnie odwrotnie - na serwerze mam linuksa, na stacjonarce mam Windowsa (więc czemu na Windowsie “nie działa” format windowsowy?). Zastanawiające jest też to, że problem występował tylko na niektórych plikach, i tylko w niektórych katalogach… Z ciekawości jakby ktoś znał wytłumaczenie to byłbym chętny wysłuchania, póki co dzięki za pomoc.

Windows używa zakończenia linii \r\n, Linux \n, OSX \r - stąd mogą być różnice.

Mnie się takie coś trafiało na niektórych FTPach, gdy ustawiłem typ transferu na ASCII w programie typu WinSCP cyz FIleZIlla. W przypadku typu BINARY tego nie było.