Stránka 1 z 1

php neradkuje

Napsal: 23 led 2009 13:51
od Imra
zdravim, ucim se php a narazil jsem na problem. Ucim se to z http://www.linuxsoft.cz/article.php?id_article=177

Jak je mozne, ze mi to neodradkuje :

Kód: Vybrat vše

<? echo "Tohle bude první řádek
Tohle bude druhý řádek
Tohle dáme nakonec"?>


Misto toho mi to udela v prohlizeci tohle :

Kód: Vybrat vše

Tohle bude první řádek Tohle bude druhý řádek Tohle dáme nakonec


nefunguje mi ani tohle, proste mi to nejak nechce radkovat

Kód: Vybrat vše

<? echo "Tohle bude první řádek\nTohle bude druhý řádek\nTohle dáme nakonec"?>


Jinak pouzivam vistu, apache 2.2, php 5.2.8 a mysql 5...Díky za rady :)

Re: php neradnkuje

Napsal: 23 led 2009 13:54
od Koja
Ehm .. a četl si dál?
Pokud jste si zkoušeli uvedený příklad s řádky a máte pocit, že tam cosi nehraje, máte pravdu. V prohlížeči totiž budou všechny údaje na jednom řádku. Kde je tedy problém? Problém je v tom, že nesmíme míchat dvě věci: to jak PHP předává informace prohlížeči a to, jak prohlížeč předané informace zobrazuje. Když pošlete prohlížeči požadavek na skript uvedený výše a necháte si zobrazit zdrojový kód stránky která dorazí, zjistíte, že tam ty konce řádku opravdu jsou. HTML ale nezalamuje řádek tehdy, když je znak konce řádku v kódu, HTML má k tomu značku <BR>. Je samozřejmě možné vložit značku HTML do řetězce v PHP, třeba takhle:

Kód: Vybrat vše

<?
echo "Řádek první...<BR>Řádek druhý<BR> a konečně řádek jánevímjaký";
?>

... blablabláááá

Přečti si ten článek celej, než začneš panikařit :wink:

Re: php neradkuje

Napsal: 23 led 2009 14:04
od Imra
A proc teda kdyz napisu


Kód: Vybrat vše

echo "Řádek první...<BR>\nŘádekdruhý<BR>\na konečně řádek jánevímjaký";


tak nedostanu tohle

Řádek první...<BR>
Řádek druhý<BR>
a konečně řádek jánevímjaký

ale tohle

Řádek první...
Řádek druhý
a konečně řádek jánevímjaký

Re: php neradnkuje

Napsal: 23 led 2009 14:12
od Koja
Ty vážně neumíš číst, že?

Kdybychom ale chtěli být maličko preciznější, můžeme napsat kód i takto:

Kód: Vybrat vše

<?
echo "Řádek první...<BR>\nŘádekdruhý<BR>\na konečně řádek jánevímjaký";
?>

prohlížeč pak obdrží následující kód:

Kód: Vybrat vše

Řádek první...<BR>
Řádek druhý<BR>
a konečně řádek jánevímjaký

a ten nám zobrazí. Rozdíl pro uživatele není žádný. Rozdíl pro prohlížeč je jen ten, že musí načíst více dat a přísně řečeno ten druhý způsob bude více zatěžovat linku do internetu, protože i ty znaky konce řádku se musejí ze serveru přenést – ale pokud budeme chtít rozpitvat to, co dorazilo do prohlížeče, je ten druhý způsob daleko přehlednější.


Takže prohlížeč dostane to <br> a díky tomu ti to odřádkuje.

Re: php neradnkuje

Napsal: 23 led 2009 14:14
od Imra
tak mi rekni k cemu teda je to \n

Re: php neradnkuje

Napsal: 23 led 2009 14:27
od Koja
To netuším, protože zatím sem se všude setkal s tím, že používají to <br> :)

Re: php neradkuje

Napsal: 23 led 2009 14:47
od Imra
No, a prave to je ten problem. Pred pul rokem mi to myslim slo udelat, jak jsem se to snazil naucit ale neuspesne. Myslim, ze je urcite chyba nekde u me, ale kde. :smile:

Re: php neradkuje

Napsal: 24 led 2009 13:28
od Myloš
\n odřádkuje ve zdrojovém kódu, ale neprojeví se to v prohlížeči, protože ten zdrojový kód interpretuje jako HTML. Když si necháš zobrazit zdrojový kód dané stránky (tj. už načtené v prohlížeči), uvidíš všude tam, kam jsi v PHP napsal \n, odřádkování navíc.
Ovšem v html se můžeš uřádkovat, ale jestliže v rámci odstavce ne<br>eakneš, tak máš smůlu.
<br> oproti tomu provede odřádkování v prohlížeči, protože je to standardní HTML značka pro odřádkování. A samozřejmě že se na monitoru neobjeví žádné <br>, když prohlížeč tagy nezobrazuje, nýbrž interpretuje. Značku <br> uvidíš pouze ve zdrojovém kódu.