Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] zapis do pliku tekstwego
-petylyl-
post 6.12.2007, 18:02:06
Post #1





Goście







Witam,
Uczę się PHP z książki Vademecum Profesjonalisty i jest tam taki fragment kodu, który zapisuje dane z formularza do pliku tekstowego. Oto on:

Kod
$adres = $imie."\t". $nazwisko."\t". $ulica."\t". $numer_domu."\t". $kodp."\t". $miejsc."\t";
$ciagwyjsciowy = $data."\t".$iloscopon."opon \t".$iloscoleju." butelek oleju\t"
                                .$iloscswiec." ¶wiec zapłonowych\t". $brutto ."\t". $cenaporabacie. $adres. "\n";

@ $wp = fopen("$DOCUMENT_ROOT/www/zam/zam.txt", 'ab');

if (!$wp)
{
echo '<p><strong> Zamówienie Państwa nie może zostać przyjęte w tej chwili.'
         .'Proszę spróbować póĽniej.</strong></p>';
    exit;
}

fwrite($wp, $ciagwyjsciowy, strlen($ciagwyjsciowy));
fclose($wp);

echo '<p>Zamówienie zapisane.</p>';


Chciałbym, aby nowe zamówienie, a więc w praktyce nowy ciąg wyjściowy był zapisywany w nowym wierszu. W książce w tym celu użyto znaku "\n". Niestety nie wiem gdzie jest błąd (być może w książce - zauważyłem ich tam kilka), ale zamówienie nie zapisuje mi się w nowym wierszu. Znaki tabulacji oznaczone "\t" są, ale kolejne zamówienie są zapisywane obok, a nie wiersz niżej. Czy wiecie jak rozwiązać ten problem?
Go to the top of the page
+Quote Post
Darti
post 6.12.2007, 18:40:11
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


\n to raczej pod linuxem
spróbuj \r


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
--emes--
post 6.12.2007, 18:46:09
Post #3





Goście







\n działa pod wszystkim - \r, to jedynie "powrót karetki"

z tego co widzę, to masz wymieszany plain text z htmlowymi tagami.

jeżeli to ma być w htmlu drukowane, to nowa linia "\n" zauważana będzie w źródle strony, ale nie na samej stornie wyświetlanej przez przeglądarakę. w htmlu musisz użyć znacznika nowej lini <br/>
Go to the top of the page
+Quote Post
tomsi
post 6.12.2007, 18:59:28
Post #4





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Polecam erratę do książki. Z tego co widzę to jest to ksiazka z wydawnictwa helion. Są tutaj wypisane znalezione blędy, a przynajmniej ich większość.

Errata

Ten post edytował tomsi 6.12.2007, 19:04:52


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
Chrom
post 6.12.2007, 20:50:00
Post #5





Grupa: Zarejestrowani
Postów: 240
Pomógł: 17
Dołączył: 28.12.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


po prostu wstaw na końcu wiersza "\r\n"
Go to the top of the page
+Quote Post
--emes--
post 6.12.2007, 21:10:00
Post #6





Goście







nie ma bata - "\n" musi wystarczyć.

może być natomiast taka kwestia, że tworzysz te pliki na serwerze uniksowym, a otwierasz je pod windowsem.
windows nie rozumie normalnego znaku nowej linii, tylko jakieś tam swoje śmieci wstawia.
w takiej sytuacji, wystarczy otworzyć taki log z jakiegoś konkretniejszego edyto tekstu (Notepad++ rozumie te znaczniki na pewno)

możesz wrzucić gdzieś przykładowego loga i podać link?
Go to the top of the page
+Quote Post
phpion
post 6.12.2007, 21:14:17
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Chrom @ 6.12.2007, 22:50:00 ) *
po prostu wstaw na końcu wiersza "\r\n"

POPIERAM.

Cytat(-emes- @ 6.12.2007, 23:10:00 ) *
nie ma bata - "\n" musi wystarczyć.

Jest bat. Na Unixach znak końca linii to \n, natomaist na Windowsach \r\n.
Go to the top of the page
+Quote Post
-petylyl-
post 6.12.2007, 21:49:58
Post #8





Goście







To jest chyba jakaś wada Notatnika, bo w Wordpadzie pokazuje poprawnie (z "/n"), także kiedy tutaj na forum wklejam ten tekst wyświetla się normalnie. Dziękuję za wskazówki. Pozdrawiam.
Go to the top of the page
+Quote Post
--emes--
post 6.12.2007, 22:24:46
Post #9





Goście







dokładnie.
właśnie o tym mówiłem; nie ma sensu się bawić w "\r\n", tylko normalny edytor jest potrzebny i tyle.


phpion.com, no przecież w dalszej treści poprzedniego postu właśnie o tym pisałem... że windows nie rozumie normalnych znaków nowej linii...
ehh... sciana.gif
Go to the top of the page
+Quote Post
-petylyl-
post 6.12.2007, 23:41:55
Post #10





Goście







-emes- - tak, twoja uwaga była słuszna, dzięki za wskazówkę. Teraz już wszystko działa i można przejść do tablic w php, czyli dalej.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 23:14