Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Nie działające białe znaki
Forum PHP.pl > Forum > Przedszkole
Almanzor
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ę.
wookieb
Paroma &nbsp;
Ale jezeli chcesz by biale znaki byly brane pod uwage to wystarczy to dac w tag <pre>
erix
Proszę o tag tematu.
Almanzor
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?
wookieb
No a nie pokazałeś co zrobiłeś.
Almanzor
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>
wookieb
A gdzie masz PRE?
Villentre
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.
Almanzor
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
wookieb
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.
Almanzor
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.
Pawel_W
  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
Wicepsik
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 winksmiley.jpg
Almanzor
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 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).
wookieb
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?
Almanzor
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.
wookieb
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.
Almanzor
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".
erix
~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".
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.