Základy PHP. Úvod do jazyka PHP a principů skriptování na straně serveru



Podobné dokumenty
PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Sada 1 - PHP. 03. Proměnné, konstanty

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Vstupní požadavky, doporučení a metodické pokyny

Skriptovací jazyky. Obsah

language="javascript">... </script>.

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Maturitní otázky z předmětu PROGRAMOVÁNÍ

PHP tutoriál (základy PHP snadno a rychle)

Server-side technologie pro webové aplikace

Instalace a konfigurace web serveru. WA1 Martin Klíma

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

HTTP. Webový server. generátor HTML stránek (CGI, Perl, PHP, Python, Ruby, Java, ASP.NET) zpracování požadavku/ odeslání odpovědi.

1 Webový server, instalace PHP a MySQL 13

PHP. Čtvrtek 8. září. Čtvrtek 15. září. Anonymní test znalostí

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze');

Jaku b Su ch ý 1

1. Webový server, instalace PHP a MySQL 13

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Základy PHP. Josef Podstata. KTE/IZTT - Zpracování textu, tabulek a prezentací. Univerzita Palackého v Olomouci

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

AUTOMATICKÉ ŘÍZENÍ S INTERNETOVOU KOMUNIKACÍ V PHP Automatic Control with Internet Communication in PHP

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

VISUAL BASIC. Práce se soubory

MAXScript výukový kurz

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

ANOTACE vytvořených/inovovaných materiálů

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

ADT/ADS = abstraktní datové typy / struktury

Střední odborná škola a Střední odborné učiliště, Hořovice


Programovací jazyk Pascal

Principy fungování WWW serverů a browserů. Internetové publikování

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

PŘETĚŽOVÁNÍ OPERÁTORŮ

Spojová implementace lineárních datových struktur

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Kurz LSL skriptování. Shiny Iceberg 2009

Roční periodická zpráva projektu

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Ukázka knihy z internetového knihkupectví

Algoritmizace a programování

Internet Information Services (IIS) 6.0

PSK3-9. Základy skriptování. Hlavička

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Webové Aplikace (6. přednáška)

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Formuláře. Internetové publikování. Formuláře - příklad

Algoritmizace prostorových úloh

PHP a Large Objecty v PostgreSQL

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Programovací jazyky Přehled a vývoj

Úvod do aplikací internetu a přehled možností při tvorbě webu

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Programování v jazyce JavaScript

Úvod do programovacích jazyků (Java)

InterSystems Caché Post-Relational Database

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

4. lekce Přístup k databázi z vyššího programovacího jazyka

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

RESTful API TAMZ 1. Cvičení 11

Programování v jazyce JavaScript

Kolekce, cyklus foreach

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

5. POČÍTAČOVÉ CVIČENÍ

Jazyk C# a platforma.net

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Internet 2 css, skriptování, dynamické prvky

17. července :51 z moravec@yahoo.com

DUM 06 téma: Tvorba makra pomocí VBA

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Programování v C++, 2. cvičení

typová konverze typová inference

INFORMAČNÍ SYSTÉMY NA WEBU

8 Třídy, objekty, metody, předávání argumentů metod

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Úvod do tvorby internetových aplikací

První kapitola úvod do problematiky

Platební systém XPAY [

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Návrh a tvorba WWW stránek 1/38 PHP

Úvod do PHP s přihlédnutím k MySQL

Co nového přináší PHP4. Jiří Kosek

Transkript:

Základy PHP Úvod do jazyka PHP a principů skriptování na straně serveru

Princip fungování web serveru Server se podívá do svého datového úložiště Hypertext Transfer Protocol Internet Internet Nalezne požadovaný soubor klient webový server <html> <head> <title> Stránka </title> A jeho obsah pošle jako odpověď klientovi. verze 1.0 2008, Martin Kruliš 2

Common Gateway Interface CGI je rozhraní mezi HTTP serverem a aplikacemi, které dovoluje získávat obsah dynamicky. Obsah je získán jako výstup CGI aplikace. Definuje pouze způsob spouštění aplikací a předávání dat. CGI rozhraní je nezávislé na implementaci serveru. Je to standard W3C. CGI aplikací může být cokoliv. Kompilovaná aplikace napsaná v libovolném jazyce (C, C++, ). Interpretovaná aplikace (tzv. skript) PHP, Perl, Python, Ruby verze 1.0 2008, Martin Kruliš 3

Common Gateway Interface Server spustí CGI aplikaci a předá ji HTTP požadavek Hypertext Transfer Protocol CGI aplikace Internet Internet CGI aplikace vygeneruje obsah stránky klient webový server <html> <head> <title> Stránka </title> Stránka se předá serveru a ten ji pošle klientovi jako odpověď. verze 1.0 2008, Martin Kruliš 4

Interpretované CGI skripty Server se podívá do svého datového úložiště Nalezený soubor se skriptem předá interpretu Hypertext Transfer Protocol Zároveň předá interpretu HTTP požadavek (přes CGI) Internet Internet klient webový server Stránka se pošle jako odpověď klientovi. <html> <head> <title> Stránka </title> Interpret zpracuje skript a vygeneruje stránku verze 1.0 2008, Martin Kruliš 5

Jazyk PHP Jazyk PHP (PHP: Hypertext Preprocessor) je skriptovací jazyk, který je přímo navržen pro použití s web. serverem. Obsahuje celou řadu vestavěných funkcí, které mají programátorovi usnadnit práci s webem. Je jedním z nejrozšířenějších. Jednoduchý a zároveň pokrývá všechny potřeby programátora. Zdarma (interpret, dokumentace, moduly ). Existují i jiné jazyky určené (použitelné) pro web: Java, ASP (.NET), Perl, Python, Ruby (on Rails), verze 1.0 2008, Martin Kruliš 6

Kombinování PHP a HTML PHP, jak již název napovídá, funguje jako preprocesor jazyka HTML. Vkládá se do HTML kódu pomocí značek <?php a?>. Při zpracování PHP interpretem se bloky PHP kódu vyjmou, zpracují a jejich výstup se vloží na místo původního kódu. PHP má však vyšší prioritu, takže lze např. ohraničovat a podmiňovat zobrazení HTML kódu. verze 1.0 2008, Martin Kruliš 7

Výstup z PHP Výstup z PHP se provádí příkazy echo a print. echo je konstrukce jazyka a umí zpracovat i více argumentů, print() je funkce a může dostat pouze jeden argument. <html> <head> <title>php příklad</title> </head> <body> <p> <?php echo 'Text z PHP.';?> </p> </body> </html> <html> <head> <title>php příklad</title> </head> <body> <p> Text z PHP. </p> </body> </html> verze 1.0 2008, Martin Kruliš 8

Podmiňování a iterace HTML kódu <html> <head> <title>ukázka PHP</title> </head> <html> <head> <title>ukázka PHP</title> </head> <body> <?php if (ma_nadpis()) {?> <h1>podmíněný nadpis</h1> <? }?> <? for ($i=1; $i<4; $i++) {?> <div><? echo $i;?></div> <? }?> </body> </html> <body> <h1>podmíněný nadpis</h1> <div>1</div> <div>2</div> <div>3</div> </body> </html> verze 1.0 2008, Martin Kruliš 9

Vkládání souborů Vkládání souborů zajišťují funkce include() a require(). V místě, kde jsou použity PHP, interpret vloží obsah specifikovaného souboru a začne jej zpracovávat. include() vloží obsah souboru těsně za sebe require() vloží obsah souboru místo sebe Existují alternativy include_once() a require_once(), které hlídají, aby nebyl jeden soubor vložen vícekrát. Při zahájení zpracování vloženého souboru se automaticky uzavře PHP blok (automaticky se doplní značka?>). Tzn. HTML se vloží správně, PHP musí být uzavřeno do <?php?>. verze 1.0 2008, Martin Kruliš 10

Proměnné Proměnné jsou v PHP uvozeny znakem $. Za ním následuje identifikátor proměnné, který smí obsahovat písmena, číslice a znak podtržítko. Proměnné se nemusí deklarovat. Definují se prvním přiřazením do proměnné. Funkce isset($var) zjišťuje, zda již byla proměnná $var definována. Funkce unset($var) odstraní proměnnou $var. verze 1.0 2008, Martin Kruliš 11

Datové typy Proměnné nemají pevně definován datový typ. Datový typ je určen obsahem proměnné a může se měnit. Existují čtyři základní datové typy: integer celé číslo float (double) desetinné číslo s plovoucí čárkou bool pravdivostní hodnota (může být pouze true, nebo false) string řetězec znaků libovolné délky Základní datové typy lze konstruovat jednoduchými výrazy: $a = 5; $b = 3.14; $c = true; $d = 'řetězec'; verze 1.0 2008, Martin Kruliš 12

Další datové typy Dále existují dva složené datové typy: array jednorozměrné pole object A ještě dva speciální datové typy null datový typ, který může obsahovat pouze hodnotu null resource externí zdroj (např. otevřený soubor) Proměnné, které nebyly deklarovány nebo byly smazány příkazem unset(), mají z hlediska programátora hodnotu null. Hodnota null znamená hodnota není definována. verze 1.0 2008, Martin Kruliš 13

Řetězce Řetězce se zapisují buď do apostrofů, nebo do uvozovek. Uvnitř apostrofovaných řetězců nesmí stát samostatně apostrof (je třeba před něj napsat zpětné lomítko). Všechny ostatní znaky nemají zvláštní význam. Řetězce zapsané v uvozovkách mají tyto vlastnosti: Některé znaky mají zvláštní význam (\n, \t, ). Znak uvozovky musí být ošetřen zpětným lomítkem. Lze do nich vkládat proměnné (ty se převedou na řetězec a vloží se do kódu). verze 1.0 2008, Martin Kruliš 14

Zjišťování typu proměnné Funkce gettype() vrací typ proměnné jako řetězec. "boolean", "integer", "double", "string" Dále existuje řada funkcí, které otestují, zda je proměnná konkrétního typu (dle funkce): is_array() is_boolean() is_int() is_string() is_scalar() is_null() verze 1.0 2008, Martin Kruliš 15

Přetypování PHP podporuje automatické přetypování. Tzn. pokud je potřeba změnit typ proměnné, PHP ji automaticky změní podle daných pravidel Pravidla jsou celkem složitá. Zde je pár zajímavých: Cokoliv lze přetypovat na bool. Skaláry (základní typy) lze přetypovat na string. string lze přetypovat na číslo (celé i desetinné). Přetypovávat lze i explicitně (uvedením typu před výrazem). $str = (string)($x + 10); verze 1.0 2008, Martin Kruliš 16

Pole Pole v PHP jsou plně dynamická. Nespecifikuje se jejich velikost a prvky lze libovolně přidávat a odebírat. Hodnoty prvků v poli nemají pevně daný datový typ. Tzn. mohou být libovolného typu (a každá položka jiného). Tímto způsobem lze pole skládat a vytvářet pole vícerozměrná. Pole se indexují celými čísly a řetězci. Oba typy indexů lze kombinovat. Pole se chová spíše jako slovník než jako pole z jiných programovacích jazyků. verze 1.0 2008, Martin Kruliš 17

Pole syntax Pole se vytváří funkcí array(). $pole = array(1,2,3); $pole2 = array(1=>5, 'a'=>2); K položkám pole se přistupuje přes klasickou [] notaci. $hodnota = $pole['klic']; Prvky se vytvářejí prvním přiřazením nebo přiřazením s automatickým indexem. $pole['klic'] = 'hodnota'; $pole[] = 42; Položky pole lze odstranit příkazem unset(). verze 1.0 2008, Martin Kruliš 18

Pole - procházení Každé pole má vnitřní ukazatel, který lze posouvat a procházet s ním prvky pole. Manipulovat s ním umí funkce: current() vrací aktuální prvek key() vrací aktuální klíč reset() vrátí ukazatel na první položku pole end() přesune ukazatel na poslední prvek pole next() posune ukazatel na následující prvek pole prev() posune ukazatel na předchozí prvek pole K procházení lze také použít řídící strukturu foreach. Pořadí prvků v poli odpovídá pořadí jejich vkládání. verze 1.0 2008, Martin Kruliš 19

Pole další vlastnosti Pole nahrazují celou řadu dalších datových struktur: spojové seznamy hašovací tabulky FIFO, LIFO stromy struktury a objekty (ale to není příliš výhodné) Existuje obrovské množství funkcí pro práci s poli. přidávání, odebírání prvků vyhledávání třídění slévání a podobné úpravy verze 1.0 2008, Martin Kruliš 20

Data z HTTP požadavku PHP obsahuje tzv. HTTP wrapper, který zapouzdřuje práci s protokolem HTTP a stará se o řadu dalších věcí. Především umístí všechna data z HTTP do přehledných struktur. Potřebná data jsou uložena v následujících polích $_GET data z URL (zaslaná metodou GET) $_POST data zaslaná aktivně (metodou POST) $_COOKIE cookies z klientova prohlížeče $_SERVER další informace (o serveru, o HTTP požadavku ) Všechna výše uvedená pole jsou "super-globální" (dostupná v libovolné části kódu). Příklad 1 verze 1.0 2008, Martin Kruliš 21

Řídící struktury a operátory Syntaxe řídících struktur je stejná jako ve všech Cčkových jazycích. if (podmínka) příkaz; [ else příkaz; ] while (podmínka) příkaz; do příkaz; while(podmínka); for(inicializace; podmínka; inkrementace) příkaz; foreach(pole as prvek) příkaz; foreach(pole as klíč => prvek) příkaz; switch(výraz) { kód s návěstími "case:" } Stejně tak syntaxe výrazů (až na následující výjimky): ke zřetězení se používá operátor "." operátor identity === (a neidentity!==) verze 1.0 2008, Martin Kruliš 22

Funkce Funkce se deklarují klíčovým slovem function. Následuje identifikátor, parametry a tělo funkce. Nikde se neuvádí datové typy (ani u parametrů, ani návratová hodnota). Uvnitř funkce lze použít příkaz return, který ukončí provádění funkce a případně předá návratovou hodnotu. Proměnné definované uvnitř funkce jsou lokální. Globální proměnné musíme nejprve deklarovat (příkazem global $var). function mul_int($a, $b) { if (!is_int($a)!is_int($b)) } return false; return $a * $b; verze 1.0 2008, Martin Kruliš 23

Práce s řetězci Programátor PHP potřebuje pracovat s řetězci téměř neustále. Za tímto účelem je zde připravena celá řada funkcí, které mají tuto práci co nejvíce usnadnit. Kromě standardních funkcí, které naleznete v jiných jazycích, nabízí PHP práci s regulárními výrazy. Regulární výrazy jsou vzory, které nějakým způsobem popisují řetězce. Dají se použít k vyhledávání, nahrazování, PHP implementuje regulární výrazy standardu POSIX Extended. Tzn. stejné jako na unixových systémech. verze 1.0 2008, Martin Kruliš 24

Práce se soubory Se soubory se pracuje analogicky jako v jazyce C. Soubor se otevře v určitém módu a programátor dostane handle. Všechny funkce pro manipulaci se souborem pak pracují s tímto handle. PHP obsahuje navíc speciální funkce, které usnadňují práci především s textovými soubory: readfile() načte soubor a pošle jej na výstup file_get_contents() načte soubor do řetězce file() načte soubor do pole (řádky odpovídají prvkům) Příklad 2 Dále jsou v PHP vestavěny funkce pro práci s filesystémem. Funkce jsou přebrány z unixového API. verze 1.0 2008, Martin Kruliš 25

Práce s databází v PHP Práce s databází je založena na architektuře klient-server. Komunikace probíhá po síťovém spojení. Klient MySQL pro PHP je implementován v zásuvném modulu (rozšíření) PHP php_mysql. Tento modul musí být povolen a nakonfigurován v php.ini. Existuje ještě improved varianta php_mysqli, což je vylepšená verze MySQL rozhraní pro PHP. PHP obsahuje celou řadu dalších klientů pro jiné databáze. PostrgeSQL, MSSQL, Oracle, verze 1.0 2008, Martin Kruliš 26

MySQL základy práce Nejprve je třeba otevřít spojení: $id = mysql_connect(server, user, passwd,...); Dále si vybereme databázi: mysql_select_db(dbname, [id]); Nyní můžeme posílat SQL dotazy: $res = mysql_query(sql_query, [id]); Na závěr práce je slušností spojení ukončit: mysql_close([id]); verze 1.0 2008, Martin Kruliš 27

MySQL zpracování výsledků dotazu Výsledek z mysql_query(), závisí na typu SQL dotazu: Upravující dotaz (INSERT, UPDATE, DELETE, ) vrací jako výsledek boolean zda se povedl, či nikoli. Zjišťující dotaz (SELECT) vrací speciální resource. Následující funkce umí vrátit vždy jeden (následující) řádek výsledku: mysql_fetch_row($res) vrací řádek jako indexované pole! mysql_fetch_assoc($res) vrací řádek jako asociativní pole, kde klíče jsou názvy sloupců mysql_fetch_object($res) vrací řádek jako objekt $result = mysql_query('select sl1, sl2,... '); while( ($row = mysql_fetch_assoc($res)) ) { } echo($row['sl1'], $row['sl2'],...); Příklad 3 verze 1.0 2008, Martin Kruliš 28

Co ještě PHP umí Pokročilejší práce s texty. Překlady, překódování znakových sad, Práce s obrázky. Generování, úpravy, Síťové funkce. Sockety (TCP a UDP), HTTP, FTP, SMTP, POP3, IMAP, Práce s XML Komprese (práce se soubory ZIP, GZIP, BZIP, ). A spousty dalších. verze 1.0 2008, Martin Kruliš 29

Další informace www.php.net Instalační balíčky, dokumentace (i v češtině), fóra, www.zend.com, framework.zend.com Společnost stojící za vývojem jádra PHP a také např. Zend frameworku. php.vrana.cz www.jakpsatweb.cz verze 1.0 2008, Martin Kruliš 30