PHP zapis do pliku bez podwójnego "entera"

0

Ktoś mi powie czemu i jak to zrobić aby tak nie było.
Ściągam sobie dane z SQL. Zapisuję w pliku.

Jeśli otworzę to badziewie w windowsowym notatniku jest ok.
Czyli jest:

Dane
Dane

Jeśli otwieram w notepad++ mam:

Dane

Dane

Dane

Skąd ten niepotrzebny pusty wiersz i jak go zlikwidować?

Pętla zapisu:


while($row = $link->fetch_array())
		{
			
			
			 $data =  date('d.m.Y',strtotime($row['data']));
			 $dane = $row['dane'];
			 $suma += $row['dane'];

			 echo $do_pliku = $dane . "\n\r";
			 
			 
			 file_put_contents($file, $do_pliku, FILE_APPEND);
			 
			
		}

Mówiąc wprost co robię:
Chce te dane kopiować do Excela ale bez tych pustych wierszy pomiędzy.

1

Włącz opcję, pokaż białe znaki i tam się dowiesz, czemu i jak zakodował to edytor tekstowy.

2

Linux i MacOS używają \n jako oznaczenie nowego wiersza. Na Windowsie jest to \r\n. U siebie w kodzie stosujesz \n\r.

Zgaduję, że w Notepad stwierdza, że linie kończone są \n, a \r jest po prostu niewyświetlane (albo, mówiąc bardziej precyzyjnie, wyświetlane jako pusty znak). Z kolei Notepad++ może włączać jakiś tryb, w którym traktuje zarówno \n, jak i \r jako koniec linii - więc gdy widzi \n\r, traktuje to jako dwa końce wiersza.

1

Wyeksportuj je z końcówkami linii LF.

0

No dobra ale to mi nic nie daje.
Nie mogę mieć tak że w przeglądarce widzę tak:

Dane 
Dane 

Jak skopiuję z przeglądarki nie ważne gdzie do Worda, do Notepada++, do VI na linuksie ... to nadal będę miał nie naruszone dane pod spodem? W dwóch kolumnach jak teraz?

A z tym LF to nie wiem o co chodzi. To nie jest \N\R ?

0
TomRiddle napisał(a):

Wyeksportuj je z końcówkami linii LF.

echo $do_pliku = $dane . "\n\r";

Zamień na

echo $do_pliku = $dane . "\n";

Wychodzi na to że sam sobie te podwójne linie dodałeś. Jeśli chciałeś dodać CRLF, to powinieneś dodać "\r\n" .

A z tym LF to nie wiem o co chodzi. To nie jest \N\R ?

LF to jest nazwa tego znaku, tak jak "Spacja" to jest nazwa " ", Tab to jest nazwa \t, tak LF (line-feed) to jest nazwa \n.

0

@youmound: Powinieneś najpierw się zastanowić jaki format chcesz mieć wyświetlany - jaki format spełnia Twoje oczekiwwania.

Rozumiem że chceć móc pokazać plik zarówno w przeglądarce, Notepadd++?

Wysyłam Ci dwa pliki, zobacz czy któryś z nich spełnia Twoje kryteria.

1
youmound napisał(a):

crlf ten drugi

No to dodaj tutaj "\r\n" zamiast "\n\r", swoją drogą skądżeś Ty wziął to `"\n\r"? ;|

<?php
while ($row = $link->fetch_array()) {
    $data = date('d.m.Y', strtotime($row['data']));
    $dane = $row['dane'];
    $suma += $row['dane'];
 
    $do_pliku = $dane . "\r\n"; // tutaj ma być CRLF
}
0
youmound napisał(a):

Ktoś mi powie czemu i jak to zrobić aby tak nie było.

  	 echo $do_pliku = $dane . "\n\r";

nowa linia pod windowsem to jest CRLF \r\n a nie \n\r

1 użytkowników online, w tym zalogowanych: 0, gości: 1