PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994 řízena WWW Consorciem W3C webový prohlížeč = program umožňující uživateli zobrazit a upravovat HTML kód, který je uložen na webovém serveru, i jiné formáty (obrázky, animace, zvuky,...) HTTP = HyperText Transfer Protocol, protokol pro přenos textu, zajišťuje komunikaci mezi webovým serverem a prohlížečem FTP = další protokol často podporovaný většinou webových prohlířečů HTML = Hypertext Markup Language, první značkovací jazyk pro tvorbu html stránek URL = Uniform Resource Locator, jednoznačně identifikující adresa objektu (soubor, adresář,...) v rámci sítě Internet CGI = Common Gateway Interface, rozhraní mezi WWW serverem a prohlížečem, adresa odkazuje na spustitelné soubory = CGI skripty, zažádá-li uživatel o nějaký dokument, dostane odpověď ve formě HTML stránky kterou CGI skript vygeneruje, skripty napsány v mnoha jazycích PHP = Personal Home Page Tools, původně sada skriptů, velký zájem, rozšiřování, nyní překládáno jako Hypertext Preprocessor Vkládání PHP do HTML Elementy, které můžeme používat v jazyce HTML, jsou definovány pomocí jazyka SGML. Ten definuje, že příkazy pro různé preprocesory, které dokument zpracovávají, mají být uzavřeny ve dvojici znaků: <?...?> Pokud chceme PHP použít pro generování XML-dokumentů (XML=nová, zjednodušená verze SGML, umožňující zařazení příkazů pro více různých preprocesorů najednou), musíme použít značky: <?php...?> Kvůli některým WYSIWYG editorům (např. FrontPage) existuje ještě způsob: <SCRIPT LANGUAGE="php">... </SCRIPT> 2011-11-11 PHP - úvod 1/5
Příklady 1. Zobrazení informací o PHP <?php phpinfo();?> 2. Zobrazování textu a proměnných <html> <head> <title>stránka velkého počtáře</title> </head> <body> <h2>stránka velkého počtáře</h2> <? $a=2; $b=3; $c=$a+$b; echo "$a+$b=$c<br />"; echo '$a+$b=$c<br />';?> </body> </html> 3. Cyklus a velikost písma v PHP <html> <head> <title>stránka plná nápisů</title> </head> <body> <h1>stránka plná nápisů</h1> <?php for ($i=1; $i<=7; $i++):?> <p><font size="<?echo $i?>">ukázkový text</font></p> <? endfor?> </body> </html> 2011-11-11 PHP - úvod 2/5
SYNTAXE PHP Syntaxe je poměrně dost podobná jazyku C. Každý program (skript)je složen z frekvence příkazů Jednotlivé příkazy oddělujeme buďto samostatně mezi dvojici znaků <? a?> nebo pomocí středníků Mezi příkazy můžeme vkládat libovolný počet mezer, tabelátorů a konců řádek Na zápis příkazů a funkcí můžeme použít libovolnou velikost písmen, na velikosti písmen záleží pouze u názvů proměnných Můžeme použít dva druhy komentářů: kratší: // krátký komentář delší: /* mnohem delší komentář i pro více řádků */ PROMĚNNÉ Před jménem proměnné píšeme vždy $ Záleží na velikosti písmen v názvu Název může obsahovat podtržítko, číslice, anglickou abecedu a znaky ASCII 127-255 (i české znaky s diakritikou) První znak názvu proměnné nesmí být číslice Není potřeba deklarovat proměnnou předem, je deklarována při prvním použití Podle potřeby automaticky konvertuje na vhodný typ Integer = celé číslo prezentován 4 bajty: <-2 147 483 648, 2 147 483 647> konstanty v 16-soustavě začínají 0x..., v osmičkové začínají 0... Double = číslo s desetinnou tečkou většinou v 8 bajtech (15 platných číslic) pro větší přesnost lze použít matematickou knihovnu BC konstanta s desetinnou tečkou nebo v exp. tvaru s e nebo E String = řetězec v uvozovkách nebo apostrofech escape sekvence: \\ => \ \" => " \$ => $, \n => nový řádek, \r => návrat vozíku \t => tabulátor \nnn => znak zapsaný pomocí ASCII kódu lze používat pouze v řetězcích v uvozovkách řetězce v apostrofech interpretují celý svůj obsah pouze jako obyčejný text: $var=20; echo "\$var = $var"; => $var=20 echo \$var = $var ; => \$var=$var s řetězcem lze pracovat jako s celkem: $text = "ahoj"; echo $text => ahoj po znacích: echo $text[1] => h Přetypování proměnných ve většině případů není třeba měnit typ proměnných, o vše se stará PHP samo změna typu proměnné: SetType(proměnná, typ) SetType($Jmeno, "string"); 2011-11-11 PHP - úvod 3/5
přetypování = pouze jednorázové: napíšeme do kulatých závorek požadovaný typ: $x = (double) $i; pokud je řetězec v místech, kde se očekává číslo, provede se automatická konverze pokud řetězec nezačíná číslicí (nebo znaménkem), výsledkem konverze bude 0 proměnná bude typu double, pokud obsahuje desetinnou tečku nebo e nebo E ZJIŠŤOVÁNÍ TYPU A OBSAHU PROMĚNNÉ funkce na kontrolu obsahu proměnné = tyto fce vrací hodnotu typu boolean (TRUE nebo FALSE), podle toho, zda zadaná proměnná odpovídá požadovanému typu: is_int($prom) is_float($prom) is_bool($prom) is_string($prom) is_array($prom) is_object($prom) funkce na zjišťování obsahu proměnné var_dump($prom)... vypíše obsah a typ proměnné Př.: $prom = 15; vypíše: int(15) print_r($prom)... vypíše přehledně obsah proměnné typu pole nebo objektu Př.: $prom = array(12, 45, 8, 9, 17) vypíše: Array ( [0] => 12 [1] => 45 [2] => 8 [3] => 9 [4] => 17 ) funkce na zjišťování existence proměnné isset($prom)... vrací hodnotu TRUE, pokud daná proměnná existuje a má přiřazenu nějakou neprázdnou hodnotu (FALSE když neexistuje) $prom=null nebo empty($prom)... vrací hodnotu TRUE, pokud daná proměnná NEEXISTUJE (TRUE když $prom=null, 0, FALSE, "0", "") funkce na zrušení proměnné unset($prom) VÝRAZY, PŘÍKAZY, OPERÁTORY výraz = cokoliv, co má nějakou hodnotu (konstanta, proměnná,...), výrazem je i volání funkce, protože funkce vrací hodnotu (číslo, string, array, object) přiřazení = má obvykle obecný tvar: proměnná = výraz; v PHP je celé přiřazení chápáno jako výraz, jeho hodnota je shodná s hodnotou výrazu v pravé části přiřazení můžeme pak psát (vyhodnocuje se zprava) $b = $a = 0; operátory (matematické) + - * / %(zbytek po dělení) +=($a=$a+$neco) -= *= /= %= inkrementace ++ a dekrementace -- preinkrementace ++$i a postinkrementace $i++ manipulace s bity čísla PHP pracuje s čísly o velikosti 32 bitů logický součin & logický součet nonekvivalence xor ^ negace ~ 2011-11-11 PHP - úvod 4/5
funkce BinDec() a DecBin() převádí čísla mezi dvojkovou a desítkovou soustavou bitový posuv manipuluje přímo s jednotlivými bity čísla << a >> posunutí vlevo a vpravo o zadaný počet míst (na okraj se automaticky doplňují nuly) nejvyšší bit nese informaci o znaménku (1=záporné) logické výrazy a operátory PHP nemá speciální datový typ pro logické proměnné (nenulová hodnota = true, i záporné!!) řetězec je nepravdivý, pokud je prázdný nebo 0 definovány dvě konstanty: true(= 1) a false (= prázdný žetězec) relační operátory: ==!= nebo <> && nebo AND nebo OR operátor === vrací true, jen pokud jsou shodná nejen hodnota, ale i datové typy proměnných operátor spojování řetězců "." a lze psát i $a.=$b ($a = $a. $b) podmíněný operátor = ternární operátor: výraz? výraz_pravda : výraz _nepravda; priority: OR, XOR, AND, = +=?: && & ==!= < <= << + -. * / %! // -- ++ @ 2011-11-11 PHP - úvod 5/5