Návrh a tvorba WWW Cvičení 4 XML, XHTML Úvod do PHP
Extenible Markup Language (XML) Použití XML „Inteligentní“ webové stránky formátování obsahu dle výstupního zařízení (PC, mobilní telefony, webTV, organizéry nebo třeba herní konzole ) Elektronické publikování generovaní např. PDF, Windows Help, … Univerzální datový formát elektronické obchodování, výměnný formát heterogenních aplikací , … … Syntaxe XML XML dokument má pouze jeden kořenový element každý element musí mít počáteční a koncovou značku ( <note>…</note> ), nebo musí jít o prázdný element (<item />) není povoleno křížení elementů název elementů a atributů může začínat pouze písmenem, podtržítkem nebo dvojtečkou zápis vyhrazených znaků pomocí zástupných entit (&entita;) komentáře nemůžou být vnořené a nesmí obsahovat --
export do xml I. zdrojový kód: blok_4/rezervace.xml
export do xml II. zdrojový kód: blok_4/rezervace.xml
Extensible HyperText Markup Language všechny elementy a atributy musí být malými písmeny, XHTML je case-sensitive všechny hodnoty atributů musí být v XHTML v uvozovkách všechny XHTML tagy musí být párové (prázdné tagy se musí ukončit lomítkem, např. <img />) tagy se nesmí nikdy křížit striktní XHTML neobsahuje žádné atributy sloužící k formátování (oproti HTML jsou z XHTML vypuštěny formátovací tagy , např. font, b, i). vkládané skripty na straně klienta (např. javascript) by měly být vloženy do sekce CDATA (starší prohlížeče CDATA nepodporují) <script><![CDATA[ zde bude kód skriptu ]]></script> znak & musí být převeden na html entitu i pokud je součástí URL. Deklarace XML Deklarace DTD (Strict, Transitional, Frameset) Kořenový element html obsahuje atribut xmlns <?xml version="1.0" encoding="iso-8859-2"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
Jmenné prostory v XHTML Jmenný prostor musí být deklarován pomocí předpony u elementu html. Vlastní element můžete použít v XHTML dokumentu spolu s deklarovanou předponou Jméno elementu lze použít jako selektoru v kaskádovém stylu, musí však být uvedeno včetně předpony jmenného prostoru. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wnd="http://dataformat.meteoweb.cz/wind/"> <p>běžný odstavec</p> <wnd:wdir>260</wnd:wdir> <wnd:wspd>6</wnd:wspd> <wnd:p>element p spadá do jiným namespace a proto se nejedná o odstavec</wnd:p> <style type="text/css"> wnd|wspd, wnd|wdir { display: block; font-weight: bold; border: 1px solid red; margin: 5px; padding: 5px; } wnd|p { display: block; background-color: yellow; } </style>
XHTML I. zdrojový kód: blok_4/c02.xhtml
XHTML II. zdrojový kód: blok_4/c03.xhtml
PHP PHP (Hypertext Preprocessor) je skriptovací jazyk sloužící převážně k tvorbě dynamických webových stránek. Poslení produkční verze je verze 5. Komentáře <?php echo „První text.“; ?> // jednořádkový komentář (styl C++) # jednořádkový komentář (styl příkazového prostředí) /* * … víceřádkový komentář (styl C)… */
Základy jazyka - proměnné nemusí se deklarovat značí se symbolem $ a pak písmeno (A-Za-z) nebo podtržítko (_) Nepřímé odkazy na proměnné Nepřímé odkazy je skriptovací Správa proměnných isset() – vrací true, pokud byla proměnná v prostředí deklarována unset() – ruší deklaraci proměnné (uvolňuje paměť) empty() – vrací true, pokud proměnná nebyla deklarována, nebo její hodnota se rovná false $jmeno = ‘Lukas’; $jmeno = ‘Lukas’; $$jmeno = ‘Cegan’; echo $Lukas; //Cegan if (isset($jmeno)) { echo $jmeno; }
Základy jazyka – datové typy Superglobální proměnné $_GET[] – proměnné z url $_POST[] – proměnné z těla http zprávy $_COOKIE[] – cookie soubory od klienta $_ENV[] – proměnné proměnného prostředí $_SERVER[] – proměnné webového serveru Datové typy Celá čísla, reální čísla, řetězce, logické hodnoty, prázdné hodnoty, pole, prostředky echo $_ENV; $cislo = 10; //cele cislo $realne = 10.5; //realne cislo $retezec = “text”; //retezec $pravda = false; //logicka hodnota $hodnota = NULL; //prazdna hodnota $pole = array(1,2,3) //pole
Základy jazyka - operátory Binární operátory +, -, *, /, %, . Operátory přiřazení =, +=, -=, *=, /=, %=, ^=, .=, &=, |=, <<=, >>= Operátory porovnání ==, !=, >, <, >=, <=, ===, !== Logické operátory &&, ||, xor Bitové operátory &, |, ^ Operátory negace !, ~ Inkrementační/dekrementační operátory ++, --
Základy jazyka – řídící struktury Větvení (if, switch) Cykly (while, do while, for) Zahrnování kódu (include, require, eval) if (true) { echo ‘true’; } else { echo ‘false’; } switch ($hodnota) { case 1: echo ‘jedna’; break; case 2: echo ‘dva’; break; default: echo ‘nenalezeno’; break; } $i = 10; while ($i>0) { echo --$i; } for ($i=0; $i<10; $i++) { echo $i; include “muj_soubor.php”;
Základy jazyka – funkce Syntaxe function název_funkce (argument1,…) { blok příkazů return; } Kontext – proměnné použité ve funkci jsou vně funkce nedostupné. Pokud chceme, aby byla proměnná dostupná i vně, je potřeba využít globální pole ($_GLOBALS[]), nebo klíčové slovo global. Návratová hodnota – návrat výsledku funkce zajistíme příkazem return, pro návrat adresy v paměti, kde je proměnná uložená je nutné při definici názvu funkce začínat znakem & (návrat odkazem). Deklarace argumentů funkce Předávané hodnotou – function($x, $y) {… Předávané odkazem – function(&$x) {… Implicitní argumenty – function($x, $y = 1) {… Statické proměnné – proměnné, jenž zůstávají v platnosti mezi jednotlivými voláními funkce. Deklarace prostřednictví static. function soucet ($x, $y) { return $x+$y; }
Switch, include zdrojový kód: blok_4/c04.php
Zpracování formuláře zdrojový kód: blok_4/c05.php
Debuging zdrojový kód: blok_4/c06.php Pro debuging lze využít opensourcový debuger Xdebug (dostupný na http://http://www.xdebug.org/). Postup instalace a konfigurace Xdebugu v Netbeans např. na http://blog.readingroom.com/2011/08/16/getting-started-with-xdebug-and-netbeans-7-0/.
Kontakt I. zdrojový kód: blok_4/include/kontakt.php
Kontakt II. zdrojový kód: blok_4/include/kontakt.php CSS styly definovány v souboru: blok_4/css/basic07.css
Kontrolní otázky K čemu slouží XML? Jaký je rozdíl HTML a XHTML? Co je to PHP? Jakým způsobem se deklarují v PHP proměnné? Co jsou to superglobální proměnné? K čemu slouží statické proměnné u funkcí?