Fotokopiranje in razmnoževanje je prepovedano. v1.22
2
FRI PHP tečaj
Code is poetry
FRI PHP tečaj
Kazalo Uvod v PHP................................................................................................................................... 7 Kaj je PHP?................................................................................................................................ 7 Različice PHPja .......................................................................................................................... 7 Datoteke .php ........................................................................................................................... 7 Izvajanje PHP skript ................................................................................................................... 8 Osnove XHTML ............................................................................................................................. 8 Zakaj (X)HTML? ......................................................................................................................... 8 Zakaj XHTML in ne HTML?.......................................................................................................... 8 Osnovna XHTML stran ............................................................................................................... 9 Osnovna XHTML sintaksa........................................................................................................... 9 Najpogosteje uporabljane značke ............................................................................................. 10 Osnove PHP ................................................................................................................................ 11 Združevanje XHTML ter PHP kode ............................................................................................ 11 Komentarji v PHP kodi ............................................................................................................. 11 Podatkovni tipi ........................................................................................................................ 12 echo in print ...................................................................................................................... 12 Izpisovanje XHTML kode s PHPjem ........................................................................................... 13 Spremenljivke ......................................................................................................................... 14 Združevanje (ang. concatenation)............................................................................................. 14 Razhroščevanje (ang. debugging) PHP aplikacij.......................................................................... 15 include in require ........................................................................................................... 15 Funkcije ...................................................................................................................................... 16 Definicija funkcij ...................................................................................................................... 16 Klicanje funkcij ........................................................................................................................ 17 Vračanje vrednosti z return .................................................................................................. 18 V PHP vgrajene funkcije ........................................................................................................... 18 Vgrajene funkcije za delo z nizi ................................................................................................. 19 Vgrajene funkcije za delo s spremenljivkami ............................................................................. 20 Vgrajene funkcije za delo z datumi in časom ............................................................................. 20 Druge najpogosteje uporabljane funkcije .................................................................................. 20 Ostale množice funkcij ............................................................................................................. 21 Polja spremenljivk (ang. arrays).................................................................................................... 21 Nenumerični ključi................................................................................................................... 22
3
4
FRI PHP tečaj
Funkcije za delo s polji ............................................................................................................. 23 Pogojni stavki.............................................................................................................................. 24 Pogojni stavek if.................................................................................................................... 24 else if............................................................................................................................... 25 Pogoji ..................................................................................................................................... 25 Združevanje pogojev ............................................................................................................... 26 Pogojni stavek switch........................................................................................................... 26 Zanke ......................................................................................................................................... 27 Zanka for .............................................................................................................................. 27 Zanki while in do... while.............................................................................................. 28 Zanka foreach ..................................................................................................................... 28 Ukaz break ........................................................................................................................... 28 Spletni obrazci ............................................................................................................................ 28 Osnovni elementi / polja (ang. fields) obrazcev ......................................................................... 28 Drugi elementi ........................................................................................................................ 29 V PHP vgrajene spremenljivke...................................................................................................... 29 Polje $_GET ........................................................................................................................... 30 Polje $_POST......................................................................................................................... 30 Polje $_FILES....................................................................................................................... 30 Polje $_SERVER..................................................................................................................... 31 Polje $_COOKIE..................................................................................................................... 31 Polje $_REQUEST .................................................................................................................. 32 Polje $_SESSION .................................................................................................................. 32 Branje in pisanje datotek ............................................................................................................. 32 Branje s funkcijama file() ter file_get_contents() ................................................... 32 Pisanje v datoteke ................................................................................................................... 33 Osnove MySQL............................................................................................................................ 33 Kaj je MySQL ........................................................................................................................... 33 Podatkovni tipi ........................................................................................................................ 33 Primarni ključ.......................................................................................................................... 34 Indeksi .................................................................................................................................... 34 Delo s podatki ......................................................................................................................... 34 Branje podatkov ...................................................................................................................... 34 Vrstni red vrnjenih podatkov .................................................................................................... 35
FRI PHP tečaj
Vstavljanje podatkov ............................................................................................................... 35 Posodabljanje in brisanje podatkov .......................................................................................... 36 Ustvarjanje podatkovnih baz in tabel ........................................................................................ 36 PHP + MySQL .............................................................................................................................. 37 Povezava na strežnik in izbira baze podatkov ............................................................................ 37 MySQL poizvedbe.................................................................................................................... 37 Druge uporabne funkcije ......................................................................................................... 38 phpMyAdmin .......................................................................................................................... 38 Web 2.0...................................................................................................................................... 39 Permalinks.............................................................................................................................. 39 RSS 2.0.................................................................................................................................... 40 AJAX ....................................................................................................................................... 40 CAPTCHA ................................................................................................................................ 40 Dodatna orodja ....................................................................................................................... 40
5
6
FRI PHP tečaj
FRI PHP tečaj
Uvod v PHP Kaj je PHP? PHP je
PHP: Hypertext Preprocessor (včasih tudi Personal Home Page Tools) skriptni jezik (to pomeni, da izvorne kode ne prevedemo v izvedljivo obliko, temveč jo sproti interpretiramo na strežniku in izpis pošljemo uporabniku) objektno usmerjen (to pomeni, da lahko definiramo razrede in iz njih tvorimo objekte) programski jezik (z njim lahko izdelujemo tako dinamične spletne strani1 kot tudi samostojne tekstovne in grafične aplikacije) brezplačna, odprtokodna programska oprema
Na razvoj PHPja sta precej vplivala programska jezika C in Perl, zato vsebuje veliko podobnih funkcij, ki jih najdemo tudi pri njiju.
Različice PHPja Ločimo dve glavni različici PHPja – verzijo 4 (ki ni toliko objektno usmerjena in je za začetnike bolj primerna) ter verzijo 5, ki je bolj primerna za kompleksnejše projekte in vsebuje nov objektni model. Obe različici redno vzdržujejo in izboljšujejo. Na tem tečaju se bomo spoznali predvsem z različico 5, saj se spodbuja čimprejšnji prehod nanjo. Vseeno je večina kode (razen OOP2 delov), napisane v PHP5, združljiva tudi s PHP4. V razvoju je tudi PHP6, ki bo prinesel mnogo potrebnih izboljšav (npr. nativno podporo Unicode-u ter odstranitev nekaterih funkcij z varnostnimi luknjami).
Datoteke .php PHP datoteke imajo običajno končnico .php, v njih pa se poleg PHP kode nahaja tudi HTML koda (ki določa izgled strani, ki jo bo videl uporabnik). V .php datotekah imamo lahko več blokov PHP kode, ki jih obdajata oznaki (konec PHP kode). Izven blokov PHP kode lahko pišemo navadno HTML kodo. PHP in HTML kodo lahko pišemo s poljubnim urejevalnikom besedil, npr. z Beležnico (ang. Notepad). Če neko datoteko poimenujemo index.php, pri obisku spletne strani njenega imena ni potrebno navesti (primer: če gremo na http://www.podjetje.si/, se nam samodejno »postreže« datoteka index.php).
1
Primeri bolj znanih strani, ki uporabljajo tehnologijo PHP: Wikipedija, phpBB forumi, WordPress blogi Object Oriented Programming – objektno usmerjeno programiranje 3 Začetek PHP kode lahko označimo tudi s krajšo oznako (), vendar je nekateri strežniki privzeto ne prepoznajo, zato se je je bolje izogibati. 2
7
8
FRI PHP tečaj
Izvajanje PHP skript PHP kodo običajno izvajamo na spletnem strežniku (Apache, IIS, Lighttpd,...), kjer je nameščen PHP interpreter (slo. tolmač). Sam interpreter je tesno povezan s strežniškim okoljem in operacijskim sistemom ter nam omogoča dostop do mnogo podatkov o strežniku in virih (datotekah, procesih,...), ki se nahajajo na njem. Ko dostopamo do neke spletne strani, ki je napisana v PHP jeziku, npr. prek naslova http://www.primer.si/skripta.php, spletni strežnik PHP skripto pošlje skozi interpreter in nam odgovor izpiše v obliki HTML kode - to tudi pomeni, da končni uporabnik nikoli ne vidi izvorne PHP kode (razen, če pride do napake na strežniku). Na našem tečaju bomo uporabljali vnaprej pripravljen spletni strežnik Apache 2 s podporo PHP 5.x in bazo podatkov MySQL 5.x, ki teče na Linux sistemu Gentoo. Če si želite PHP namestiti na lastnem računalniku, vam priporočam, da sledite navodilom, ki se nahajajo tukaj: http://www.stamcar.com/datoteke/PHP/xampp.htm Datoteke bomo na strežnik nalagali prek protokola FTP, zato za dostop potrebujete uporabniško ime in geslo, ki ju boste dobili tekom tečaja. Prosimo, da teh podatkov ne delite s tistimi, ki niso prijavljeni na tečaj ter da na strežnik ne nalagate datotek, ki niso povezane s tečajem. Po zaključku tečaja bodo vse datoteke izbrisane. Na strežniku si ustvarite svojo mapo, katere ime naj bo v obliki imepriimek (npr. markostamcar). Prek spletnega brskalnika lahko nato do vsebine mape dostopate prek naslova http://***.stamcar.com/imepriimek/
Osnove XHTML Zakaj (X)HTML? Preden začnemo pisati spletne strani v PHPju, moramo spoznati še osnove XHTML jezika, s katerim brskalniku povemo, kako naj izgleda naša spletna stran.
Zakaj XHTML in ne HTML? XHTML (Extensible HyperText Markup Language) se od HTMLja razlikuje predvsem po tem, da ga pišemo po strožjih pravilih4 , ter da težimo k ločitvi vsebine (content) od izgleda (style)5. Večina modernih spletnih strani zato uporablja XHTML namesto HTMLja. XHTML prav tako kot HTML pišemo z značkami (ang. tag). Z njimi npr. definiramo odseke strani, del besedila, ki ga želimo odebeliti, vstavljamo slike in flash animacije, oblikujemo tabele ter ustvarjamo obrazce. 4 5
Upoštevanje teh pravil na svojih straneh lahko preverimo prek strani http://validator.w3.org/ Stil (izgled) spletnih strani določamo s CSS (Cascading Style Sheets).
FRI PHP tečaj
Osnovna XHTML stran Osnovna XHTML stran izgleda nekako takole: Naslov strani <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"/>
Primer odstavka
Z DOCTYPE določimo vrsto dokumenta (strict, transitional ali frameset), ki določa pravila, značke in njihove atribute ter način prikaza XHTML dokumenta. strict se od transitional-a razlikuje po tem, da transitional dovoljuje nekatere atribute značk iz navadnega HTMLja, ki jih strict ne. XHTML kodo pišemo med značkama ter , kjer imamo dva glavna dela: V glavi () z značko določimo naslov strani, z značko <meta> pa nabor znakov strani (v našem primeru je to windows-1250, kjer šumniki delujejo najbolje) V telo () pride dejanska vsebina strani, ki nam jo bo prikazal spletni brskalnik
Osnovna XHTML sintaksa XHTML elemente tvorijo značke in njihova vsebina. Vse značke pišemo med levim (<) in desnim (>) oklepajem. Znotraj značk imamo lahko tudi poljubno število atributov in njihovih vrednosti, pri navajanju katerih lahko uporabimo dvojne ( ") ali enojne (') narekovaje. Značke lahko nastopajo v parih, pri čemer drugi znački rečemo zapiralna značka in ji pred ime dodamo desno poševnico (/), lahko pa so tudi enojne, pri čemer znak za zapiranje damo pred desnim oklepajem. Zgled: VsebinaVsebina Pri uporabi značk moramo upoštevati naslednja pravila: 1. Vse značke morajo biti pravilno gnezdene Zgled: ... ...