====== Jazyk PHP, test ====== Informace o testu: Test bude písemný, bez použití jiných pomůcek než tužky, papíru a vlastní hlavy. Okruh znalostí je dán dosud probranou látkou, tj. zaměříme se na klientskou stranu webové aplikace. Časová náročnost testu: 20 minut. Cvičící může rozhodnout o posunu testu o jeden týden podle aktuální situace. /* * [[courses:A7B39WA1:solutions:04:start]] */ ===== 1 - Výpis aktuálního data ===== - Založte si nový soubor ''datum.php''. - Vytvořte validní XHTML obsah tohoto souboru s textem: //Dnešní datum je: XXXX// - Na pozici XXXX doplňte PHP skript, který vypíše aktuální datum. /* [[courses:b6b39zwa:tutorials:solutions:04:datum-1|Řešení]] */ //Nápověda// - použijte on-line manuál PHP na adrese www.php.cz, funkce date. ===== 2 - Práce s datem ===== Rozšiřte předchozí příklad tak, že definujete proměnnou ''$datum'', do které přiřadíte řetězec ve tvaru ''den.mesic.rok'' (např. ''12.6.2008''). Předpokládejme, že oddělovačem je znak "." - naplňte proměnné ''$den'', ''$mesic'', ''$rok'' odpovídajícími hodnotami z řetězce - vytvořte novou proměnnou ''$timestamp'', která bude obsahovat unix timestamp odpovídající danému datu - do XHTML vypište datum určené pomocí unix timestamp ve formátu : //den. mesic. rok je den_v_tydnu// (např. 12.6.2008 je čtvrtek) /* [[courses:b6b39zwa:tutorials:solutions:04:datum-2|Řešení]] */ //Nápověda// - Prostudujte možnosti funkcí ''explode()'', ''mktime()'' a ''date()''. ===== 3 - Funkce ===== - PHP kód z předchozího příkladu převeďte na funkci, která bude mít jako parametr řetězec reprezentující datum a vracet řetězec s datem a dnem v týdnu /* [[courses:b6b39zwa:tutorials:solutions:04:datum-3|Řešení]] */ ===== 4 - Průchod pole ===== Předpokládejte, že máte v poli uložena data jako řetězce stejně jako v příkladu 2 výše. - Postupně procházejte toto pole a pro každou jeho položku na samostatný řádek vypište - číslo řádku, číslování začíná od 1, - datum a den v týdnu /* [[courses:b6b39zwa:tutorials:solutions:04:datum-4|Řešení]] */ //Nápověda// - konstrukt ''foreach''. ===== 5 - Vytváření pole===== - Napište funkci, která vrátí pole všech čísel měsíců z pole dat z předchozího příkladu. /* [[courses:b6b39zwa:tutorials:solutions:04:datum-5|Řešení]] */ ===== 6 - Různé měsíce ===== - Upravte funkci z předchozího příkladu tak, aby do výsledného pole ukládala pouze všechna __různá__ čísla měsíců. /* [[courses:b6b39zwa:tutorials:solutions:04:datum-6|Řešení]] */ ===== 7 - Zjištění typu proměnné ===== Mějme proměnnou ''$cislo'', která obsahuje libovolný textový řetězec. - Napište funkci, která zjistí, zda tento řetězec je kladné celé číslo. Pokud ano, vrátí hodnotu ''true'', jinak ''false''. /* [[courses:b6b39zwa:tutorials:solutions:04:datum-7|Řešení]] */ ===== 8 - Nepovinné paramery funkcí ===== - Modifikujte funkci z předchozího příkladu tak, že bude mít navíc nepovinný parametr ''$min''. - V případě, že parametr ''$min'' bude zadán a bude číslo, funkce vrátí ''true'' v případě že testovaná hodnota je kladné celé číslo větší nebo rovno ''$min''. - V ostatních případech se chování funkce nezmění. - Funkci dále rozšiřte o nepovinný parametr ''$max'', který pokud bude zadán, bude číslo a bude větší než ''$min'', pak funkce bude vracet ''true'' pouze v pokud budou splněny všechny předchozí podmínky a navíc bude testovaná hodnota menší nebo rovna ''$max''. /* [[courses:b6b39zwa:tutorials:solutions:04:datum-7|Řešení]] */ ===== Domácí úkol ===== V proměnné ''$mesic'' mějme číslo měsíce od 1 do 12 a v proměnné ''$rok'' číslo od 1970 do 2050. Napište funkci, která vypíše kalendář tohoto měsíce v následujícím tvaru: {{courses:A7B39WA1:tutorials:04:kalendar2.png|}} - pozor v kalendáři je chyba. Poslední týden se nemá zobrazit, protože patří do dalšího měsíce. Váš domácí úkol to bude zobrazovat správně. V kalendáři zobrazte odlišnou barvou i přiměřený počet dnů minulého a následujícího měsíce. ====== Odkazy ====== * [[http://www.w3schools.com/php/default.asp | w3schools php tutorial]] * [[http://www.w3schools.com/php/default.asp | www.php.cz manual]]