Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z komendą echo
Forum PHP.pl > Forum > Przedszkole
Rafal Z
Witam,

Udało mi się właśnie zainstalować Apache2.0.59 i PHP 5.2 na moim komputerze. PHP wydaje się, że działa ale kiedy startuję dokument o poniżej podanej treści:

  1. <?php
  2. Echo "string1";
  3. Echo "string2";
  4. ?>


jako wynik Firefox i IE6.0 wyświetlają co następuje string1string2.
Z dokumentacji PHP wynika, że Komenda "Echo "string2"" powinna wypisać teskst w nowej linijce. Przykłady wzięte z tutorialu też raczej nieprawidłowo są wyświetlane.

Następująca modyfikacja nie zmieniła formatu wyświetlania:

  1. <?php
  2. Echo "string1n";
  3. Echo "string2";
  4. ?>


Jak sobie z tym poradzić

Rafal Z
Setesh
  1. <?php 
  2. echo "Cos<br>cos2<br>cos3";
  3. ?>


może coś takiego ? smile.gif
mefjiu
Cytat(Setesh @ 12.05.2007, 12:57:19 ) *
  1. <?php 
  2. echo "Cos<br>cos2<br>cos3";
  3. ?>


może coś takiego ? smile.gif


nie może a napewno
Rafal Z
Owszem to działa z <br>, jednak zgodnie z oficjalną dokumentacją to samo powinno być wykonalne z ciągiem "\n" (jeśli string umieszczony jest w cudzysłowie). Dlaczego więc u mnie PHP działa niezgodnie z tym co jest napisane w dokumentacji? Jeżeli zamierzam w czymś programować to oczekuję, że rzeczywistość pokrywa się z tą opisaną w dokumentacji. Inaczej nie mam pewności, czy po rozwiązaniu tego problemu, nie będę musiał się z następnymi podobnymi zgłaszać na forum.

Rafal Z
tommy4
wejdź w źródło i takie coś FAKTYCZNIE JEST wykonywane.

jednak w HTML potrzeba <br>, żeby utworzyć nową linię.

I skończ narzekać na dokumentację, bo ona działa i jest zaj****, tylko ty nie rozumiesz zasad z niej korzystania.
Rafal Z
W takim razie jak rozumieć następujący wpis w dokumentacji
Cytat
If the string is enclosed in double-quotes ("), PHP understands more escape sequences for special characters:

Table 11.1. Escaped characters
sequence meaning
\n linefeed (LF or 0x0A (10) in ASCII)
\r carriage return (CR or 0x0D (13) in ASCII)
\t horizontal tab (HT or 0x09 (9) in ASCII)
\\ backslash
\$ dollar sign
\" double-quote
\[0-7]{1,3} the sequence of characters matching the regular expression is a character in octal notation
\x[0-9A-Fa-f]{1,2} the sequence of characters matching the regular expression is a character in hexadecimal notation

Again, if you try to escape any other character, the backslash will be printed too! Before PHP 5.1.1, backslash in \{$var} hasn't been printed.

But the most important feature of double-quoted strings is the fact that variable names will be expanded. See string parsing for details.
cytat: PHP Manual->Types->Strings
dr_bonzo
Rafal Z: zrozum: za pomoca php i echo() tworzysz kod HTML a w HTML znaki nowych linii \n nie przenosza ci tekstu do nowej linii (wyjatkem jest np. \n wewnatrz <pre>), do tego musisz uzyc <br />. A jak zajrzysz do kodu ktory ci sie wygenerowac (pokaz zrodlo strony), to jak ci mowili, znajdziesz tam przeniesienie do nowej linii.


  1. <?php
  2. echo "aaaan";
  3. echo "bbbb<br/>cccc";?>


zrodlo strony
Kod
aaaa
bbbb<br />cccc


wyglad w przegladarce
Kod
aaaa bbbb
cccc
Rafal Z
Dzięki, teraz jasne: sekwencje sterujące jak "\n" dotyczą generowanego kodu html.

Rafal Z
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.