Začínáme s PHP - výstup (19. díl)

Napsal O webu (») 13. 6. 2005 v kategorii PHP/HTML, přečteno: 4009×

Výstup ze všech možných stran (skoro).

Dnes si ukážeme podrobněji práci s výstupem v PHP. Možností, které přináší, je totiž nespočet.

Únikové sekvence

Často se pro únikové sekvence také používá výraz zpětné sekvence nebo escape sekvence (ten také budu používat - ze zvyku). Jde o útvary užívané při výstupu (jak také jinak při dnešním tématu :-)). Prostřednictvím nich se většinou posílají na výstup netisknutelné znaky, tzn. na stránce neviditelné (ale více méně viditelné ve zdrojovém kódu). Jak již lze z názvu vypozorovat, bude jejich základem zpětné lomítko. Zde máte jejich stručný výpis:

Sekvence Význam " Uvozovky v textu ' Apostrof v textu Zpětné lomítko v textu $ Znak $ v textu Ukončení řádku (new-line) Návrat vozíku (carriage-return) Tabulátor

Všimněte si, že zpětné lomítko nemůžete jen tak vypsat do stránky, právě protože slouží jako počátek escape sekvence a říká interpretu, že následující znak musí interpretovat jako escape sekvenci. Stejně tak u znaku dolaru ($), protože ten uvozuje identifikátor proměnné.

Pozor, escape sekvence nejsou interpretovány uvnitř řetězců s apostrofy. Zde je výjimkou escape sekvence apostrofu (jinak by byla docela zbytečná). Stejně tak nelze v apostrofech využívat nahrazení proměnné jejím obsahem (což lze obejít, viz dále).

Následuje demonstrace jejich využití: // V uvozovkách
$veta1 = "Pozor na správné použití "escape" sekvencí v textu!";
// a v apostrofech
$veta2 = 'V apostrofech si dávejte na 'escape' sekvence také pozor.';

// Ukázka bez escape sekvencí
$veta1bez = 'Při správné volbě uvozovek/apostrofů je používání "escape" sekvencí zbytečné,';
$veta2bez = "ba Vám dokonce nesprávné použití 'escape' sekvencí může způsobit zmatky! :-)";

// Nesprávné použití nejen escape sekvencí v apostrofech
$es = "escape sekvence";
$chybnytext = 'V tomto "textu" nebudou interpretovány '$es', ba dokonce se nevloží ani obsah proměnné.';
Bez komentáře.

 

Tisk na stránku

Výstup na stránku je snad nejdůležitější v celém PHP, jinak by stránky v PHP ani nemohly být dělány (až na extra výjimky, které používají PHP jen pro nějaké zpracování dat do db (db = databáze) apod., ale výstup je pak prováděn pomocí externího programu, který s db pracuje). Pro tisk na stránku se nejvíce využívá funkce echo, ale také se používá funkce print. Výběr jedné z nich záleží na Vás, záleží na zvyku. S echo se setkáte asi nejčastěji, ať už v opensource projektech, či v různých článcích na Internetu i knihách. Já osobně používám echo - jsem na něj zvyklý a navíc má čtyři znaky - print jich má pět. :-)

Dopouštím se zde malé nepřesnosti, protože ani jedna z uvedených funkcí není funkcí v pravém slova smyslu. Jde totiž o jazykové konstrukce, takže se tam nemusí používat závorky (ale mohou, i když neviděl jsem, že by je tam někdo psal): // fce print
print "Výstup s print není těžký. ";
print ("A stejně jako echo má více možností zápisu. ")

// fce echo
echo "S echo je to stejně jednoduché ";
echo ("Volání echo jako klasické funkce funguje také. ");
Vidíte, že se není čeho obávat (kdybychom na něco takového přeci jenom narazili, tak na to hned upozorním).

Další způsoby výstupu

syntaxe HEREDOC. Sami posuďte: $a = 243; // zkušební proměnna
$pole["s_indexem"] = "Pole s indexem"; // zkušební pole

// vlastní syntaxe HEREDOC
echo "1 ha"); // vytvoříme si pole pomocí fce Array
echo "Letos mám na poli ". $pole["zito"] ." žita a $pole['len'] lnu."; // využití rozdělení řetězce a jeho opětovného spojení tečkami a apostrofů

Budu se ještě chvilku věnovat rozdělování řetězců, protože to je docela užitečné znát. $heslo = "mojesoukromeheslo-nikomunerikat"; // :-)
echo "Moje soukromé heslo je '". md5($heslo) ."', bylo vygenerováno ". date("j.n.Y") ." a posláno k Vám na adresu ". $_SERVER["REMOTE_ADDR"] .".";
// Výstup:
// Moje soukromé heslo je 'be11531261d7a506fd3595b35667d5c3', bylo vygenerováno 5.6.2005 a posláno k Vám na adresu 127.0.0.1.
Jak vidíte, byl vytištěn jeden řetězec. Pomocí teček lze vkládat do řetězce i výstupy funkcí; v příkladu jsem použil fce md5 - vrátí md5 hash řetězce (jednosměrná fce, používá se pro šifrování hesla) a date - v požadovaném formátování vrací datum (a čas, ale i jiné údaje - viz manuál). Dále jsem tam použil $_SERVER['REMOTE_ADDR'], což vypíše Vaši IP adresu. Superglobálními proměnnými i funkcemi md5 a date se budeme zabývat v některém z dalších dílů seriálu (se superglobálními proměnnými pravděpodobně již příště).

Ještě přidám svoji osobní zkušenost. Já nejraději používám složené závorky, protože nemusím složitě opouštět řetězec a zároveň jsem zvyklý všude psát uvozovky (takže používám spíše escape sekvence než-li apostrofy), protože apostrofy se mi tolik nelíbí. :-) Na druhou stranu se v tom dá lehčeji udělat chyba, ale mně chyby nevadí, protože už mám zažito, kde mám jaký druh chyby hledat, a tak je dle hlášení PHP hned najdu a odstraním (navíc už tolik chyb nedělám - maximálně překlepy :-)).

 

Závěr

Jako v každém dílu, tak i dnes si uděláme na závěr takovou malou rekapitulaci. Již byste měli být schopni používat funkce pro výstup bez nějakých potíží (spíše bez nich) i používat i vyhrazené znaky (, $...) a formátovat vzhled zdrojového kódu ( a ). Problémy a dotazy pište do fóra pod článkem (pokud mi to bude umožněno (momentálně jsem totiž zablokovaný a nemůžu tak psát do fóra), tak Vám tam možná i odpovím :-), jinak Vám budu odpovídat na Váš e-mail, tak ho nezapomeňte uvést).

Příště

Jak jsem už slíbil, tak příště se pravděpodobně budeme věnovat superglobálním proměnným. Takže to bude kousek nejen pro začátečníky.

Autor: mzima

Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel pět a devět