Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

PHP Michal Kutil ČVUT FEL Praha

Podobné prezentace


Prezentace na téma: "PHP Michal Kutil ČVUT FEL Praha"— Transkript prezentace:

1 PHP Michal Kutil ČVUT FEL Praha

2 1. Úvod

3 Zdroje PHP a MySQL rozvoj webových aplikací Luke Welling a Laura Thomsonová; Softpress; 2004 PHP v příkladech V. Smilek, J. Berit a L. Mrázek L.; KOPP;

4 Historie PHP Personal Home Page PHP Hypertext Preprocesor Rasmus Lerdorf Informace o návštěvnících jeho stránek Skriptovací jazyk Dal k dispozici zdrojové kódy Open Source produkt

5 Vývoj používání PHP

6 Charakteristika PHP Skriptovací jazyk Dynamické vytváření webových stránek Jednoduchost Nezávislost na platformě Vysoký komfort práce s databázemi V kódu lze lehce kombinovat HTML a PHP Syntaxe podobná C, C++, Javě

7 Mechanismus zpracování ServerWebový prohlížeč Webový server Apache, IIS Souborový systém *.html, *.gif, *.jpeg, *.php Database MySQL PHP Požadavek Odpověď *.php *.html,*.gif,… Webová stránka html, gif, jpeg, js NE PHP!

8 2. Základy programování

9 Vzorová aplikace Nejběžnější aplikace Zpracování formulářů Webové stránky Méďovy včelnice Seznam produktů Objednávkový formulář Zpracování formuláře Uložení objednávky (soubor, databáze) Odeslání potvrzení o přijetí em

10 Seznam produktů Objednávkový formulář Soubor formular.php Jde pouze o HTML Atribut action a method tágu form Atribut name tágu input

11 Zpracování objednávky Soubor s názvem uloženým v atributu action tágu form: objednavka.php Soubor musí mít koncovku *.php Alternativní konfigurace serveru: *.php3, *.php4, *.php5, *.phtml, … Výstupem bude opět jen HTML!

12 Vkládání PHP do HTML Pod nadpis vložte následující:  Otevřete stránku přes server a prostudujte zdrojový kód.

13 Obsah souboru s PHP kódem HTML Značky PHP:,, … Příkazy PHP: echo Prázdné znaky Komentáře: Blokové /* … */ Řádkové // …, # …

14 Vkládání dynamického obsahu Zatím bychom se bez PHP obešli Dynamická změna obsahu stránek Na základě vnějších vlivů Na základě chování uživatele  Doplňte stránku se zpracováním objednávky o informaci o datu a času objednání

15 Data z formuláře Data jsou uloženy v proměnných Proměnné začínají znakem $ Data dostupná přes tři různé proměnné $medsv $_POST['medsv'] ($_GET['medsv']) $HTTP_POST_VARS['medsv'] Existence v závislosti na verzi a konfiguraci PHP  Doplňte objednávku o přehled počtu nakoupených věcí

16 Uživatelem deklarované proměnné Proměnné vždy začínají znakem $ Proměnné se nemusí deklarovat Přiřazování hodnot proměnným $celkovemnozstvi = 0; $celkovacena = 0.00; $celkovacena = $cenaposleve; $jmenoobchodu = ‘Méďova včelnice’;

17 Operátory +Sčítání$a + $b; $c Odečítání $a - $b; $c - 30 *Násobení$a * $b; $c * 30 /Dělení$a / $b; $c / 30 %Modus (zbytek po dělení) $a % $b.Spojení (Spojuje textové řetězce)  S použitím operátoru spojení vypisujte přehled objednaných věcí pomocí jednoho příkazu echo  Vypište celkový počet objednaných věcí

18 Řídící struktury Rozhodování pomocí podmínek if ( podmínka ) { příkaz(y) } else { jiný(é) příkaz(y) } Podmínka - porovnávací a binární operátory Bloky příkazů {}  Doplňte zpracování objednávky, tak aby se vypsalo že si uživatel nic neobjednal

19 Příkaz SWITCH Podobné příkazu if, ale možno určit více hodnot výsledku switch ( výraz ) { case hodnota : příkaz(y); break; case hodnota : příkaz(y); break; default : příkaz(y); break; }  Doplňte objednávku o marketinkový průzkum návratnosti reklamy

20 Opakování akcí while (podmínka) { příkaz(y) } for (výraz1; podmínka; výraz2) { příkaz(y) }  Vytvořte stránku s ceníkem (tabulkou). Cena dopravy zboží je závislá na vzdálenosti.

21 Opakovací cvičení Na začátku skriptu vytvořit jednoduché proměnné ($medsv=$_POST['medsv']) Operátory Zavést cenu za produkt Přehled kolik mě co stálo Celkově k zaplacení if Vypsat varování pokud si uživatel nic neobjednal Sleva z celkové částky (10-49kg 5%, 50-99kg 10%, 100 a více 15%) switch Zjistit návratnost reklamy

22 3. Zajímavé možnosti PHP

23 Pole Číselně indexovaná pole Asociativní pole Vícerozměrná pole Řazení polí Med světlýMed tmavýVosk produkty

24 Číselně indexované pole Vytvoření pole $produkty=array('Med světlý','Med tmavý','Vosk'); $produkty=array(1=>'Med světlý','Med tmavý','Vosk'); Přístup k obsahu pole $produkty[0] $produkty[3]='Medovina';  Informaci o datu objednání zobrazte korektně s českými názvy měsíců Řazení pole: sort()

25 Asociativní pole Vytvoření pole $cena=array('medsv'=>80,'medtm'=>90,'vosk'=>50); Přístup k obsahu pole $cena['medsv'] $cena['vosk']='nezjištěno';  Použijte k výpočtu ceny za objednávku asociativní pole, předchozí příkazy pouze zakomentujte Řazení pole: asort(), ksort()

26 "Recyklace" kódu Uživatelem definovaná funkce function echop($text) { echo ' '.$text.' '; } Vložení externího souboru include ('menu.inc.php');  Použijte funkci echop při zpracovaní objednávky  Vytvořte soubor menu.inc.php s odkazy na všechny doposud vytvořené soubory, tento soubor pomocí include vložte na konec každé stránky

27 4. Ukládání a získávání dat

28 Uložení objednávky Zápis do souboru Otevření souboru Zápis Zavření souboru $fp = fopen('objednavky.txt','a'); fwrite($fp, $text); fclose($fp);  Uložte objednávku do souboru objednavky.txt

29 Načtení objednávky ze souboru Načtení příkazem file $nacteneobj=file('objednavky.txt');  Vytvořte soubor prehledobj.php jenž zobrazí všechny doposud provedené objednávky

30 5. Pokročilé programování

31 Proměnná chameleón $jmenoproduktu = 'medsv'; $$jmenoproduktu = 52; stejné jako $medsv echo $medsv; // vypise 52

32 Úvozovky Podobný význam jako apostrofy Větší inteligence při interpretaci echo "Objednáno $medsv kg medu sv."; Vkládání znaku ENTER a TAB echo "\n\t"; Pozor na úvozovky echo "Citace zapisujem do \"";

33 Mail Odeslaní se provádí pomocí příkazu: mail ( 'nadpis zprávy', 'zpráva...'); mail ( 'nadpis zprávy', 'zpráva...'); Testovat skript tak, že jeho výsledek nejdříve vytisknete na obrazovku a poté teprve použijete příkaz mail(…) Nikdy neumisťujte tento příkaz do cyklu

34 JáJá Honza Krákora ČVUT FEL Praha

35 Podpora u Služba pošty není všude podporována Je třeba být hodný na administrátora serveru nechat si nastavit SMTP a Firewall nastavit si PHP pro odesílání ů (SMTP nastavení) Někteří poskytovatelé standardně podporují (např. Webzdarma)

36 6. PHP a jiní poskytovatelé Poskytovatelé serverů s PHP (např. webzdarma, Pípni) PHP, , DB (MySQL), logy atd. Placené zálohy, logy, servis bezpečnostních služeb Free – neplacené bez záloh, levné  Založte si konto u připojte se pomocí FTP a nahrajte tam svojí presentacihttp://www.webzdarma.cz  Vytvořte skript .php na posílání ů z vaší aplikace

37 7. Práce s řetězci V PHP velmi jednoduché Silná podpora viz. funkce Trim(), Ltrim(), Rtrim() odstraňují prázdné znaky z řetězce “.ahoj.pepo...\n\r\t” -> “ahoj.pepo”

38 Trim $str = array('a', 'ahoj', 'ahoj pepo ', ' ahoj pepo '); /* tupy vypsani */ foreach($str as $i){ echo 'retezec: "'.$i."\"\n"; } /* trim funkce */ foreach($str as $i){ echo 'retezec: "'.trim($i)."\"\n"; }

39 Rtrim a Ltrim /* rtrim (chop) funkce */ foreach($str as $i){ echo 'retezec: "'.rtrim($i)."\"\n"; } /* ltrim */ foreach($str as $i){ echo 'retezec: "'.ltrim($i)."\"\n"; } ?>  upravte skript na zpracování u tak aby ořízl řetězec u o prázdné znaky

40 str_replace() funkce str_replace() přemaže řetězec starystr řetězcem novystr v řetězci str, výsledek uloží do out $out = str_replace($starystr, $novystr, $str)  Upravte vaše tabulky aby se vypisoval sudý a lichý řádek jinak (použijte str_replace a CSS)  Upravte text zprávy odesílané em aby se místo objevil text (zavinac)

41 Implode, explode atd. funkce Implode() sloučí položky pole do řetězce str, mezi jednotlivá políčka vloží znaky str = explode(znaky, pole); funkce Explode() rozdělí řetězec str do pole řetězců pole, dělení je dáno parametrem hledej pole = explode(hledej, str);

42 Další funkce funkce strlen ( string ) funkce strtolower ( string ) funkce strtoupper ( string ) funkce htmlspecialchars( string ) funkce nl2br( string ) funkce ereg (pattern, string, out)

43 To je konec


Stáhnout ppt "PHP Michal Kutil ČVUT FEL Praha"

Podobné prezentace


Reklamy Google