Stránky v PHP

Při tvorbě stránek s užitím PHP budeme potřebovat znalosti HTML, stránku v PHP můžete vytvořit také tak, že stránce HTML změníte příponu na .php. Čili všechno, co znáte z HTML můžete využít, zdrojový kód PHP se bude vkládat do zdrojů stránek s HTML tagy (naopak, pokud HTML neznáte, nebudete moci s PHP pracovat). Webový server prohlíží stránku a než ji vyšle žadateli, vykoná příkazy uvedené v kódu PHP, které mohou obsah stránky změnit - tím se právě stránky v PHP liší od statických stránek HTML (jejich zdroj se musel měnit vždy jen "ručně"). Pro tvorbu a úpravy stránek v PHP můžete tedy používat stejné editory jako pro HTML, Poznámkový blok nebo raději například PSPad kvůli různým pomůckám.


Vložit PHP do HTML stránky lze více způsoby, vyzkoušejte kamkoliv do zdroje vložit například:
<?php
    echo ("text generovany php");
?>
nebo
<?
    echo ("text generovany php");
?>

(Pozor - ne vždy fungují obě možnosti, je potřeba vyzkoušet, pokud jste instalovali podle 1.lekce a neměnili jiná nastavení v php.ini, nebude druhá možnost fungovat, první ale funguje vždy (snad :-) ).)
Pokud uložíte stránku s tímto kouskem PHP například pod názvem pokus.php, pozná webový server podle přípony, že ji má nejprve zpracovat a teprve potom odeslat. Stránku si otevřete v prohlížeči (pokud jste si instalovali Apache na svůj počítač, píšete do prohlížeče adresu http://localhost/pokus.php), potom se podívejte do zdroje - uvidíte, že v něm už žádný kóp PHP není - webový server ho provedl a potom vám stránku "zapůjčil".

Jako u každého programovacího jazyka se musíme seznámit se syntaxí jeho příkazů a funkcemi, které má k dispozici. Stejně jako u ostatních našich kurzů půjde jen o základy (za hodinu týdně se více zvládnout nedá), více potom můžete čerpat například v odkazech uvedených dole.

Příkaz echo

Základními příkazy každého programovacího jazyka jsou příkazy pro výstup (na monitor, do souboru..). V předchozí ukázce jsme již použili příkaz echo, který do zdroje stránky (nikoli na monitor) vloží text uvedený v uvozovkách (nebo apostrofech):
<?php
echo ("<h1> První pokusy </h1> ");
echo('vložení textu do stránky');
echo "Dnes je hezky ", "Zítra bude ošklivo...", "pozítří bude taky ošklivo...", " ve středu přijde hurikán...";
?>


Všechny příkazy se v PHP ukončují středníkem, středník za posledním příkazem být nemusí (ale může, abychom na něj při příštím doplňování kódu nezapomněli). Jak je vidět v ukázce, můžeme více textů v příkazu echo oddělit čárkou. Podobně jako v HTML nezáleží na rozložení textu s příkazy, klidně mohlo být vše zapsané na jednom řádku, ale to by bylo nepřehledné. Pro odřádkování textu ve zdroji (ale nikoli na stránce! - jak dosáhnete odřádkování na stránce?) můžete použít odřádkovaný zápis, nebo sekvenci \n:

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

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


Obrácené lomítko se používá také pro zobrazení dalších znaků, které by jinak zobrazit nešly, například uvozovky, dolar a podobně: \" \$. Například uvozovky je potřeba do zdroje vepisovat často.
A odpověď na kontrolní otázku - chceme-li dosáhnout odřádkování na stránce, vložíme do zdroje tag HTML (XHTML) pro odřádkování:
<?php echo "Tohle bude první řádek <br /> Tohle bude druhý řádek<br />Tohle dáme nakonec"?>

Stejný význam jako příkaz echo má také příkaz print( ) (ten navíc (protože jde o funkci)) vrací informaci, zda výstup proběhl či nikoli).

Další základní znalostí v každém programovacím jazyce je práce s proměnnými. Pokud jste se s proměnnými ještě nesetkali, můžete si je představit jako blok paměti, do které program ukládá různé hodnoty, ať už číselné, logické nebo řetězcové. Během své činnosti může program tyto hodnoty měnit (přepisovat v paměti), provádět s nimi operace nebo vypisovat jejich hodnoty.

Proměnné

Každá proměnná musí mít svůj název, v PHP začínají názvy proměnných znakem $ a musíme si dát pozor, že se rozlišují malá a velká písmena (proto najdete většinou spíš názvy proměnných s malými písmeny). Prvním znakem názvu proměnné musí být písmeno (nikoli číslice nebo jiný znak), názvy volte takové, aby z nich bylo jasné, k čemu proměnné používáte.

Podle toho co můžeme do proměnné uložit, rozlišujeme čtyři základní typy proměnných - logické (obsahují jednu z hodnot true, false), celočíselné (celá čísla zhruba od -2 bilionů do +2 bilionů), reálné (pro desetinná čísla s přesností na 14 desetinných míst, pozor na ně, nemusí počítat přesně - viz příklad) a řetězcové (pro slova, texty).
Co týká hodnot, pak desetinná čísla se píšou s tečkou a řetězcové hodnoty (slova, texty) se uzavírají do uvozovek, hodnotu do proměnné vložíte pomocí znaku = (rovná se). S číselnými proměnnými můžete provádět běžné matematické operace + - * / a používat závorky jako v matematických výrazech. Další operace % se používá pro určení zbytku po dělení (např. 17%3 má výsledek 2). Řetězce je možné spojovat pomocí tečky.
Následující příklad si důkladně prohlédněte, abyste stoprocentně pochopili jeho syntaxi (text v uvozovkách se vypisuje (opisuje), čárky oddělují vypisované údaje, jsou-li uvedené názvy proměnných, vypisují se jejich hodnoty nebo hodnota výrazu). Vyzkoušejte i možnosti uvedené v řádkových komentářích za znaky //, takové příkazy se nevykonávají (víceřádkový komentář se zapisuje takto: /* víceřádkový komentář */). Všimněte si, jaký je rozdíl mezi použitím uvozovek a apostrofu v příkazu echo a také chybného počítání s desetinnými čísly.
<?php
$a=5.1; $b=6.3; $jmeno="Karel"; $den=Date("d.m.Y H:i:s");
echo $jmeno, " pocita: 11.4 -($a + $b) =",11.4-($a+$b);
//echo $jmeno, ' pocita: 11.4 -($a + $b) =',11.4-($a+$b);
//echo $jmeno, " pocita: 11.4 -(",$a," + ", $b,") = ",11.4-($a+$b);
echo "<br />",$den;
?>

V příkladu je použita také jedna z definovaných funkcí PHP - Date, její hodnotou je řetězec - v tomto případě obsahující den, měsíc a rok oddělené tečkou, hodiny, minuty a vteřiny oddělené dvojtečkou (jde o aktuální čas na serveru ve chvíli překladu kódu).


Úkoly:

Úkol (2 body)

Do stránky index.php doplňte odkaz na stránku pocty.php, která má obsahovat alespoň dvouřádkový zápis výpočtu obvodu a obsahu obdélníka se stranami 8.5 a 12.8 (text kombinovaný s hodnotami, např.: o = (8.5+12.8)*2 = výsledek), části textu mají být vypsané tučně (např. o=). Na dalším řádku mají být vypsané alespoň tři údaje z funkce Date.

Název školy:Základní škola, Hradec Králové, M. Horákové 258
Název projektu:EU peníze školám
Číslo projektu:CZ.1.07/1.4.00/21.2575
Téma:Programování v PHP
Název:VY_32_INOVACE_02_10A_PHP2
Autor:Pavel Petr
Použité zdroje: Není-li uvedeno jinak, jsou všechny ilustrační obrázky dílem autora.