Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Nie działające białe znaki, PHP nie interpretuje poprawnie \n, \t
Almanzor
post
Post #1





Grupa: Nieautoryzowani
Postów: 9
Pomógł: 0
Dołączył: 15.06.2009

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


Witam. Wczoraj zainstalowałem sobie Apache2Triad(nie po raz pierwszy), z PHP mam do czynienia od 2 lat, jednak zaskoczył mnie ostatnio błąd(bo tak to interpretuję), który polega na tym iż instrykcja
  1. <?php
  2. echo "Pierwsza linia \n Druga linia \n Trzecia linia";
  3. ?>
wyświetla wszystko w jednym wierszu, co daje taki wynik:
Cytat
Pierwsza linia Druga linia Trzecia linia

O ile "\n" mogę zastąpić "<br>", to przy tabulacji("\t") nie wiem jak w prosty sposób mogę sobie poradzić. Jeśli ktoś potrafi pomóc to bardzo proszę.

Ten post edytował Almanzor 15.06.2009, 12:59:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Paroma &nbsp;
Ale jezeli chcesz by biale znaki byly brane pod uwage to wystarczy to dac w tag <pre>
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Proszę o tag tematu.
Go to the top of the page
+Quote Post
Almanzor
post
Post #4





Grupa: Nieautoryzowani
Postów: 9
Pomógł: 0
Dołączył: 15.06.2009

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


Dobra, tak działa, ale w rzeczywistości niedziałający u mnie sposób powinien zaprezentować taki wynik:
Cytat
Pierwsza linia
Druga linia
Trzecia linia

Czemu tak nie jest?
Go to the top of the page
+Quote Post
wookieb
post
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No a nie pokazałeś co zrobiłeś.
Go to the top of the page
+Quote Post
Almanzor
post
Post #6





Grupa: Nieautoryzowani
Postów: 9
Pomógł: 0
Dołączył: 15.06.2009

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


Chciałbym, w prosty sposób, tj za pomocą koduponiżej, który wg wielu kursów w sieci oraz podręcznika(który mam przed sobą) uzyskać wynik z mojego poprzedniego postu. A kod który powinien mi ten wynik wygenerować to:
  1. <html>
  2.  <head>
  3.     <title>Rdz 1 cw. 2</title>
  4.  </head>
  5. <body>
  6. <?php
  7. echo "Pierwsza linia \n Druga linia \n Trzecia linia";
  8. ?>
  9. </body>
  10. </html>


Ten post edytował Almanzor 15.06.2009, 13:08:56
Go to the top of the page
+Quote Post
wookieb
post
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A gdzie masz PRE?
Go to the top of the page
+Quote Post
Villentre
post
Post #8





Grupa: Zarejestrowani
Postów: 21
Pomógł: 10
Dołączył: 14.10.2008
Skąd: 127.0.0.1

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


Nie wiem, czy dobrze zrozumiałem, ale zerknij na źródło strony, którą zrobiłeś - tam pewno masz, tak jak chciałeś, linia pod linią.
Zakładam, Twój problem polega na wyświetleniu tego w przeglądarce, która interpretuje html i ona musi widzieć <br> lub <br /> by przejść do następnej linii.

Ten post edytował Villentre 15.06.2009, 13:09:40
Go to the top of the page
+Quote Post
Almanzor
post
Post #9





Grupa: Nieautoryzowani
Postów: 9
Pomógł: 0
Dołączył: 15.06.2009

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


Dobra, daje "pomógł". Aczkolwiek jestem rozczarowany, tym że ten kod nie działa tak jak powinien w tej najprostszej postaci. O ile pamiętam, do tej pory działało to tak jak tego oczekiwałem, na tym samym serwerze(A2T), tyle że w szkole.

Cytat(wookieb @ 15.06.2009, 14:08:45 ) *
A gdzie masz PRE?

wookieb, chodziło mi o to, żeby to działało bez żadnych urozmaiceń, typu <pre>, choć jest to rozwiazanie, ale nie takie jakie prezentują w nawet w książkach.

Powołam się na jakiś autorytet, ten kod nie należy do mnie, pochodzi on ze strony helion.pl, a mimo to nie działa(na moim lokalnym serwerze) tak jak zamierzył autor
  1. <html>
  2.  <head>
  3.     <title>Rdz 1 cw. 2</title>
  4.  </head>
  5. <body>
  6. <?php
  7. $hamburger = 4.95;
  8. $napoj_czekoladowy = 1.95;
  9. $cola = .85;
  10. $jedzenie = 2 * $hamburger + $napoj_czekoladowy + $cola;
  11. $podatek = $jedzenie * .075;
  12. $napiwek = $jedzenie * .16;
  13.  
  14. printf("%1d %9s w cenie $%.2f za sztukę: $%.2f\n", 2, 'Hamburger', $hamburger, 2 * $hamburger);
  15. printf("%1d %9s w cenie $%.2f za sztukę: $%.2f\n", 1, 'Milkshake', $napoj_czekoladowy, $napoj_czekoladowy);
  16. printf("%1d %9s w cenie $%.2f za sztukę: $%.2f\n", 1, 'Cola', $cola, $cola);
  17. printf("%25s: $%.2f\n", 'Razem jedzenie i napoje', $jedzenie);
  18. printf("%25s: $%.2f\n", 'Koszt całkowity z podatkiem', $jedzenie + $podatek);
  19. printf("%25s: $%.2f\n", 'Koszt całkowity z podatkiem i napiwkiem', $jedzenie + $podatek + $napiwek);
  20. ?>
  21. <body>
  22. </html>


Wynikiem tego kodu w przeglądarce jest:
Cytat
2 Hamburger w cenie $4.95 za sztukê: $9.90 1 Milkshake w cenie $1.95 za sztukê: $1.95 1 Cola w cenie $0.85 za sztukê: $0.85 Razem jedzenie i napoje: $12.70 Koszt ca³kowity z podatkiem: $13.65 Koszt ca³kowity z podatkiem i napiwkiem: $15.68


Ten post edytował Almanzor 15.06.2009, 13:24:14
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Bo on na pewno podał wynik ze źrodła strony. Dla htmla konieczne jest podaniu mu na tacy informacji jak ma traktować białe znaki i domyślnie jest ustawione, że ma je ignorować dlatego konieczne jest odzianie takiego tekstu w pre badz element który ma wlasciwosc
  1. white-space: pre;
. I nie sądzę, żeby to zależało do serwera.
Go to the top of the page
+Quote Post
Almanzor
post
Post #11





Grupa: Nieautoryzowani
Postów: 9
Pomógł: 0
Dołączył: 15.06.2009

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


Cytat(wookieb @ 15.06.2009, 14:30:37 ) *
Bo on na pewno podał wynik ze źrodła strony.

Kod, o którym mówisz jest elektroniczną częścią podręcznika i występuje on - ten kod - w postaci pliku *.php. Z całą resztą się zgadzam i dzięki za objaśnienie. Najwidoczniej autor książki nie postarał się o dopracowanie szczegółów.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #12





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


  1. <?php
  2. $data = "Pierwsza linia \n Druga linia \n Trzecia linia";
  3. echo nl2br($data);
  4. ?>


tu masz tak jak chciałeś ;]

EDIT: nie zauważyłem ostatniego postu :S

Ten post edytował Pawel_W 15.06.2009, 19:27:23
Go to the top of the page
+Quote Post
Wicepsik
post
Post #13





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


Cytat(Almanzor @ 15.06.2009, 15:15:06 ) *
Kod, o którym mówisz jest elektroniczną częścią podręcznika i występuje on - ten kod - w postaci pliku *.php. Z całą resztą się zgadzam i dzięki za objaśnienie. Najwidoczniej autor książki nie postarał się o dopracowanie szczegółów.

Książka jest sprzed 3 lat, więc autor pisał zapewne ok. 4 lata temu. Przez te 4 lata dużo się zmieniło (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Almanzor
post
Post #14





Grupa: Nieautoryzowani
Postów: 9
Pomógł: 0
Dołączył: 15.06.2009

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


Cytat(Wicepsik @ 15.06.2009, 20:37:03 ) *
Książka jest sprzed 3 lat, więc autor pisał zapewne ok. 4 lata temu. Przez te 4 lata dużo się zmieniło (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Dziwi mnie jednak, że PHP też mogło się tak zmienić. Moim zdaniem taka technologia powinna być(i chyba jest) kompatybilna wstecz.

A czy zna ktoś rozwiązanie dotyczące "\t" - tabulatora(bo nie jest to kwestia wstawienia kilku spacji).
Go to the top of the page
+Quote Post
wookieb
post
Post #15





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(Almanzor @ 16.06.2009, 15:46:55 ) *
Dziwi mnie jednak, że PHP też mogło się tak zmienić. Moim zdaniem taka technologia powinna być(i chyba jest) kompatybilna wstecz.
Czy to w ogóle CZYTASZ co się do ciebie pisze? Wicepsik nie napisał, że TAKIE COŚ BYŁO, tylko że książka jest trochę stara. I to tylko jego uwaga. Poza tym w książkach jest czasem mnóstwo błędów.

Cytat(Almanzor @ 16.06.2009, 15:46:55 ) *
A czy zna ktoś rozwiązanie dotyczące "\t" - tabulatora(bo nie jest to kwestia wstawienia kilku spacji).

A czego? Może jednopixelowych gifów?
Tłumacze ci jak dziecku z podstawówki co trzeba zrobić w htmlu albo co można zrobić od strony PHP to nie.
Więc po co w ogóle zakładasz temat skoro NIE CZYTASZ co się do Ciebie pisze?
Go to the top of the page
+Quote Post
Almanzor
post
Post #16





Grupa: Nieautoryzowani
Postów: 9
Pomógł: 0
Dołączył: 15.06.2009

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


Jak masz się w taki sposób się wypowiadać to lepiej tego nie rób w ogóle, a jak nie wiesz do czego służy klawisz tab(pomyśl po co ktoś stworzył coś takiego jak \t i inne znaki specjalne) i jakie ma on właściwości to proponuje pobawić się trochę w jakimś edytorze tekstu zamiast udawać speca od PHP.
Go to the top of the page
+Quote Post
wookieb
post
Post #17





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(Almanzor @ 16.06.2009, 16:22:08 ) *
proponuje pobawić się trochę w jakimś edytorze tekstu zamiast udawać speca od PHP.

Uwierz mi z czystym sumieniem mogę Cię powiadomić, że TAK jestem specem od PHP, i nie takimi "zabawkami" się bawiłem.
Natomiast ty na pewno nie jesteś specem (nawet beginnerem) od rozumienia.
Cytat(Almanzor @ 15.06.2009, 14:18:31 ) *
Wynikiem tego kodu w przeglądarce [ A nie w źródle strony - przypis @wookieb] jest:


Cytat(wookieb @ 15.06.2009, 14:30:37 ) *
Dla htmla konieczne jest podaniu mu na tacy informacji jak ma traktować białe znaki i domyślnie jest ustawione, że ma je ignorować dlatego konieczne jest odzianie takiego tekstu w pre badz element który ma wlasciwosc
  1. white-space: pre;
.

Widzisz różnice pomiędzy widokiem z okna przeglądarki a źródłem strony? Bo ja widzę i do tego nie muszę być specem.

Poza tym odpal sobie ten skrypt z linii komend i tam będziesz miał pięknie odwzorowane białe znaki.
Go to the top of the page
+Quote Post
Almanzor
post
Post #18





Grupa: Nieautoryzowani
Postów: 9
Pomógł: 0
Dołączył: 15.06.2009

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


Cytat(wookieb @ 16.06.2009, 16:29:43 ) *
Widzisz różnice pomiędzy widokiem z okna przeglądarki a źródłem strony? Bo ja widzę i do tego nie muszę być specem.

Jak się spotyka takich ludzi na forum, to się odechciewa z niego korzystać. "Specu" od "rozumienia"(na polski rozumowania), gdybym nie widział tej różnicy to wierz mi, nie zawitał bym na to forum. Wynik w przeglądarce = widok w oknie, jak możesz twierdzić, że wynik w przeglądarce traktuję(ja) jak źródło strony, które znajduje się na serwerze i daleko mu jeszcze do wyswietlenia czegoś w oknie. Przeceniasz swoje możliwości "rozumienia".
Go to the top of the page
+Quote Post
erix
post
Post #19





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~wookieb, przystopuj; pycha nie jest dobra. Ja rozumiem, że można się zdenerwować, jak ktoś nie czyta ze zrozumieniem tego, co się do niego pisze, ale chyba nie zapomniałeś, że jest coś takiego, jak netykieta? Jak nadal będziesz zapominał, przypomnę bardziej dobitnie.

Trzymajcie poziom - od tego macie PW, żeby sobie nawet nabluzgać; Wasza sprawa, nie musicie robić "obciachu".
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.12.2025 - 15:13