PORTÁLOVÉ SYSTÉMY Přednáška č. 5 a č. 6 Jan Górecki gorecki@opf.slu.cz > PHP •Skriptovací programovací jazyk –Skript je v informatice zdrojový kód programu, který je tzv. interpretován, tj. čten a spouštěn za běhu speciálním procesem, tzv. interpretem –Nejčastěji se začleňuje přímo do struktury jazyka HTML, XHTML či WML –PHP se používá na realizování úkonů, které nejdou bez pomoci serverových programů vytvořit •Kombinuje vlastnosti více programovacích jazyků a nechává tak vývojáři částečnou svobodu v syntaxi PHP •PHP skripty jsou většinou prováděny na straně serveru server_skript PHP •PHP je specializovaný na webové stránky •Rozsáhlý soubor funkcí v základní knihovně PHP •Nativní podpora mnoha databázových systémů •Multiplatformost (zejména Linux, Windows) •Možnost využití nativních funkcí operačního systému (možná nekompatibilita s jiným OS) •Strmá křivka učení •Podpora na hostingových službách – PHP je fakticky standardem, který najdeme téměř všude •Velké množství projektů a kódů, které lze zdarma využít (WordPress, phpBB a další) •Poměrně slušná dokumentace •Svobodná licence • PHP •Soubor text.php • Základní PHP skript PHP • • • • První PHP kód • • • • • Uložení s příponou *.php PHP •EasyPHP 14.1 (nebo libovolná jiná verze) –PHP –MySQL –Apache –PHPMyAdmin •Pracovní složka –C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb Exkurze do PHP •Proměnné •Operátory •Větvení •Cykly •Příklady • • •Více na http://www.tvorba-webu.cz •http://www.w3schools.com/php/default.asp • PHP •Proměnná –$cislo = 5; –$cislo = "pět"; – $vek." ?> PHP Operátor Funkce Příklad + Sčítání $a + $b - Odčítání $a - $b * Násobení $a * $b / Dělení - podíl $a / $b % Modulo - zbytek po dělení $a % $b Operátor Funkce Příklad = Přidělení - je rovno $a = $b += Přidělí proměnné hodnotu jakou měla a ještě přičte(5) $a += 5 .= Vlastně přičítá řetězce(když $a je A, tak výsledek bude Ahoj) $a .= "hoj" Operátor Výsledek Příklad == TRUE - je-li rovno $a == $b === TRUE - je-li rovno a je stejného typu $a === $b != TRUE - není-li rovno $a != $b <> TRUE - není-li rovno $a <> $b !== TRUE - není-li rovno a není stejného typu $a !== $b < TRUE - menší než $a < $b" > TRUE - větší než $a > $b >= TRUE - větší nebo rovno $a >= $b <= TRUE - menší nebo rovno $a <= $b Operátor Funkce Příklad and TRUE - pokud jsou proměnné true $a and $b or TRUE - pokud je jedna proměnné true $a or $b xor TRUE - pokud je jedna proměnné true, ale ne obě $a xor $b ! TRUE - proměnná není true ! $a && TRUE - pokud jsou proměnné true $a && $b || TRUE - pokud je jedna proměnné true $a || $b Tučné nazpamět!! PHP – typy proměnných Typ Význam String Text, řetězec (sada znaků), příklad: $retezec = "obyčejný text"; Integer Celé číslo, se kterými je možné pracovat, počítat, příklad: $cislo = 2; Float, real nebo double Desetinné číslo Boolean Logická proměnná, hodnota PRAVDA, NEPRAVDA (1, 0), zapisuje se TRUE nebo FALSE $retezec = "obyčejný text"; $celecislo = 2; $desetinnecislo = 0.2; $logickapromenna = TRUE; Větvení v PHP •if (podmínka) proces1; •else proces2; • •$a=1; •$b=2; •if ($a == $b) { • echo ("Jsou si rovny."); • echo ("a i b mají stejnou hodnotu"); •} • PHP větvení 2 •If, else a elseif if (podmínka) proces1; elseif (podmínka2) proces2; elseif (podmínka3) proces3; else poslední proces; $a = 5; if ($a==4) echo("4"); elseif ($a<4) echo("menší než 4"); else{ if($a>4 && $a<7){ echo("číslo je větší než 4 a menší než 7"); } else echo($a); } Pythagorův trojúhelník •Máme-li tři čísla a, b, c. Tato čísla odpovídají délkám stran nějakého trojúhelníku. •Jak zkonstruujeme v PHP podmínku, která bude pravdivá pouze v případě, že trojúhelník je pravoúhlý? Cykly v PHP •Cyklus DO WHILE •$c = 1; •do { • echo($c . " "); • $c++; •} •while($c<101); Cykly v PHP •Cyklus WHILE •$c = 1; •while($c<101){ • echo($c . " "); • $c++; •} • Cykly v PHP •Cyklus FOR •for($c=100; $c>=1; $c--){ • echo($c." "); •} Příkaz přerušení cyklu - BREAK •$a = 0; •while ($a<10) { • if($a == 5) break; • $a++; • echo($a . "
"); •} Příkaz k opakování cyklu - CONTINUE •$a = 0; •while ($a<10) { • if($a == 5) break; • $a++; • if($a == 3) continue; • echo($a . "
"); •} Součet sudých čísel •Využijte cyklů v PHP k vypsání prvních n sudých přirozených čísel Funkce •definice: •function napis(){ • echo("ahoj"); •} • •spuštění: •napis(); • Funkce s argumentem •function napis($jmeno){ • echo($jmeno); •} • •napis("dobrý večer"); //napíše dobrý večer •napis("ahoj"); //napíše ahoj •napis("dobré ráno"); //napíše dobré ráno Funkce vracející hodnotu •function vrat($cislo){ • return $cislo*2; •} • •echo(vrat(20)); •echo(vrat(100)/vrat(10)) Rekurze • • •Zpracujte v PHP pomocí funkcí následující rekurzi (výpočet faktoriálu): •faktoriál(N): • pokud N = 0, potom výsledek = 1, • jinak výsledek = N * faktoriál(N - 1) http://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/Sierpinski.svg/800px-Sierpinski.svg.png https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRaKrkprDnokmM3SEYy9lOJVQhcXcbak_1D5M2bIErG2t8 YNubLcQ Pole •$pole = array ("mrkev", "celer", "brambory"); •echo($pole[0]); //vypíše 'mrkev'; • •$zahrada = array (3 => "jablon", "hrusen"); •echo($zahrada[4]); //vypíše 'hrusen'; • •$sklenik[1] = "redkvicky"; //postupné přiřazování prvků i s indexem(1) •$sklenik[3] = "fazole"; Pojmenované pole •$pole["br"] = "brambor"; •$pole["kv"] = "kvetak"; •echo("nemám rád ".$pole["br"]." ani ".$pole["kv"]); //nemám rád brambory ani květák • •$knihy = array("js" => "JavaScript v příkladech", "php" => "PHP pro profesionály"); •echo($knihy["js"]); Procházení polem •$dodelat = array("PHP", "CSS", "SQL", "XML"); • •for ($p = 0; $p < count($dodelat); ++$p){ • echo ("je třeba dodělat ".$dodelat[$p]."
"); •} Procházení pojmenovaným polem •$pole["PHP"]="Hotové"; •$pole["CSS"]="Rozepsané"; •$pole["XML"]="Hotové"; •$pole["SQL"]="Nezačaté"; • •reset($pole); •while(list($index, $stav) = each($pole)){ • echo ($index." - ".$stav."
"); •} Globální proměnné • Skládání více stránek pomocí PHP • Děkuji za pozornost