×
Vytvárame riešenia

Nový riadok v PHP s príkazom echo

Po dlhšej odmlke a návrtu k PHP som hneď na začiatku začal riešiť triviálny problém, ako vytvoriť nový riadok. Všetky články a aj knihy, ktoré mám, uvádzali štandardné zalomenie riadka cez \n. Tiež som si to takto pamätal, ale zápis \n stále nechcel fungovať. K zalomeniu vôbec nedošlo.
V minulosti som používal WAMP (Windows, Apache, MySQL, PHP) a teraz mám LAMP (Linux, Apache, MySQL, PHP), tak som začal uvažovať či aj tento fakt nemôže byť príčinou prečo \n nefunguje. V rámci hľadania riešení, ktorých bolo niekoľko, nič nepomáhalo. Skúšal som postupne \n, \r\n, konštantu PHP_EOL, ale aj nahradenie príkazu echo za funkcie printf(), print_r() či print().
Žiaľ z uvedených možností nič nezabralo, a tak som prešiel na klasický markup. V rámci PHP pre zalomenie riadka používam <br/>, resp. <br>, keďže už pracujem iba s HTML5. Verzie HTML 4.0 a XHTML 1.1 som už prestal podporovať.
Príklad: Zápisy nového riadka v PHP cez element <br>.
1
2
echo "Line 1" . "<br>"; // variant 1
echo "Line 2 <br>"; // variant 2
V rámci good practices sa element <br> až na výnimky v jazyku HTML nepoužíva. Medzi výnimky patrí napríklad nahradenie zápisu \n v elementoch s podporou formátovaného obsahu. Z tohto dôvodu býva element <br> nahradzovaný blokovými elementmi, medzi ktoré napríklad patria <div> a <section>. Opäť závisí, aký druh jazyka HTML je použitý (HTML4, HTML5, XHTML). Element <br> je možné používať v rámci príkladov, ale pri profesionálnej tvorbe webov, až na zopár výnimiek, je vhodné ho nepoužívať.
Príklad: Zápisy nového riadka v PHP cez blokové elementy jazyka HTML.
1
2
3
4
echo "<div>" . "Line 1" . "</div>"; // variant 1
echo "<div>Line 2</div>"; // variant 2
echo "<section>" . "Line 3" . "</section>"; // variant 3
echo "<section>Line 4</section>"; // variant 4
Niektorí autori pre zabezpečenie zalomenia textu používajú kombinovaný zápis elementu <br> so znakom zalomenia riadka \n. Ja tento štýl zápisu neodporúčam, keďže zápisy elementu <br> zostávajú v súboroch a aj v konzole viditeľné.
Príklad: Zápis elementu <br> so znakom zalomenia riadka \n.
1
echo "Demo text. <br> \n";

Záver

Na záver ešte dodávam, že uvedené zalomenie riadka je určené pre zobrazenie v internetovom prehliadači. V prípade zalomenia textu sa používa už zápis \n. Takto zalomený text je určený napríklad pre prácu so súbormi alebo pre zobrazenie dát v konzole internetového prehliadača. To znamená, že ak autor pracuje s AJAX-om a chce zobraziť výstup z PHP v konzole internetového prehliadača, musí použiť \n a nie <br>. Ak chce autor zalomiť zdrojový kód (text), použije \n. Ak chce zalomiť výstup pre prehliadač, použije <br> pričom zápis <br> bude aj v zdrojovom kóde (v texte). Zalomenie cez \n nie je v texte viditeľné. Je ho ale možné zobraziť, ak to textový editor umožňuje.
Autor: Matej Lednár
Dátum: 2.12.2012
Kategória: PHP
Značky: php, programovanie, echo, br, \n, printf, print_r, print


PHP,PHP,programovanie,echo,br,\n,printf,print_r,print
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Peter 06.12.2017 16:25 Ahoj, som v PHP nový, ale nič z toho čo píšeš okrem tebou neodporúčanej metódy (/n) vôbec nefunguje (môžeš si to sám odtestovať tu http://sandbox.onlinephpfunctions.com/) testoval som to na tomto kode &lt;?php $date = new DateTime(); $timestamp = strtotime('22-09-2008'); echo $date-&gt;getTimestamp(); echo "Demo text. &lt;br&gt; \n"; echo $timestamp; ?&gt;
Autor 18.12.2017 09:17 ahoj, \n ti bude fungovat v pripadoch ak budes robit s konzolou/terminalom alebo odosielat data na klienta. takze zase uplne \n nezavrhuj :-). Nezabudaj, ze napr. &lt;textarea&gt; alebo &lt;pre&gt; ti to spracuju, kym &lt;br&gt; by si mal zobrazene.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších