osnove php-a d - download.tutoriali.orgdownload.tutoriali.org/tutorials/php/php_5_-_osnove.pdf ·...

32
D obrodo{li u PHP! Zvani~no je PHP skra}enica za PHP: Hypertext Preprocessor, ali ga milioni ljudi i dalje znaju po originalnom nazivu - Personal Home Page. To je i su{tina ovog jezika. U pitanju je kreiranje interaktivnih Web strana na najlak{i mogu}i na~in. Web strane vi{e ne moraju da budu stati~ke i nepromenljive. Sada mo`ete da korisnicima {aljete nove Web strane prilago|ene onome {to oni `ele da vide. Sve se to de{ava u realnom vremenu. Mo`ete da rukujete dugmadima, poljima za potvrdu i radio dugmadima, a mo`ete ~ak i da interaktivno crtate i {aljete podatke u bazu podataka. Sve je na Vama, treba samo otvoriti kutiju. Ovo je mesto na kome }e Va{e Web strane postati "`ive". Radi}emo sa verzijom 5 PHP-a. Web sajt je www.php.net. PHP je specijalno projektovan za kreiranje Web strana u vrlo kratkom roku. U ovoj knjizi }emo PHP koristiti za programe na serveru. PHP skriptove }emo instalirati na serverskoj ma{ini. Korisnici }e te skriptove mo}i da otvaraju u Web pretra`iva~ima i mo}i }e da vide sve {to se o~ekuje od pravih Web strana. Tu se misli na polja za unos teksta, tabele sa podacima koji su "u letu" dobijeni iz baze podataka, kao i pokretnu grafiku, odnosno na sve ono {to ve}ina savremenih, profesionalnih Web strana danas ima. Kod Web strana koje su napisane u obi~nom HTML jeziku Web server samo prosle|uje HTML koji se nalazi na strani nazad do pretra`iva~a. Korisnik tako mo`e da vidi slike i tekst, ali to je sve. Kada u PHP-u napi{ete svoj skript, Vi, u stvari, predo~avate serveru {ta `elite da se desi, bilo da je re~ o ~itanju teksta koji je korisnik uneo u polje za tekst, bilo da `elite da pogledate koja je polja potvrdio. Nakon toga, mo`ete da se opredelite {ta `elite da se slede}e desi, tako da mo`ete da "u letu" napravite Web stranu koja se {alje nazad do pretra`iva~a. PHP je postigao veliki uspeh. Danas ga koristi vi{e od 15 miliona Web strana. Na slede}im stranama }ete videti kako Web server mo`e da se natera da sa PHP-om radi ono {to Vi `elite. POGLAVLJE 1 Osnove PHP-a PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Upload: nguyentuyen

Post on 01-Feb-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

Dobrodo{li u PHP! Zvani~no je PHP skra}enica za PHP: Hypertext Preprocessor,ali ga milioni ljudi i dalje znaju po originalnom nazivu - Personal Home Page.To je i su{tina ovog jezika. U pitanju je kreiranje interaktivnih Web strana na

najlak{i mogu}i na~in. Web strane vi{e ne moraju da budu stati~ke i nepromenljive.Sada mo`ete da korisnicima {aljete nove Web strane prilago|ene onome {to oni `ele davide. Sve se to de{ava u realnom vremenu. Mo`ete da rukujete dugmadima, poljima zapotvrdu i radio dugmadima, a mo`ete ~ak i da interaktivno crtate i {aljete podatke ubazu podataka. Sve je na Vama, treba samo otvoriti kutiju.

Ovo je mesto na kome }e Va{e Web strane postati "`ive".

Radi}emo sa verzijom 5 PHP-a. Web sajt je www.php.net. PHP je specijalno projektovan za kreiranje Web strana u vrlo kratkom roku. U ovoj knjizi }emo PHP koristiti za programe na serveru. PHP skriptove }emo instalirati na serverskoj ma{ini.Korisnici }e te skriptove mo}i da otvaraju u Web pretra`iva~ima i mo}i }e da vide sve{to se o~ekuje od pravih Web strana. Tu se misli na polja za unos teksta, tabele sapodacima koji su "u letu" dobijeni iz baze podataka, kao i pokretnu grafiku, odnosno nasve ono {to ve}ina savremenih, profesionalnih Web strana danas ima.

Kod Web strana koje su napisane u obi~nom HTML jeziku Web server samoprosle|uje HTML koji se nalazi na strani nazad do pretra`iva~a. Korisnik tako mo`e davidi slike i tekst, ali to je sve. Kada u PHP-u napi{ete svoj skript, Vi, u stvari, predo~avateserveru {ta `elite da se desi, bilo da je re~ o ~itanju teksta koji je korisnik uneo u poljeza tekst, bilo da `elite da pogledate koja je polja potvrdio. Nakon toga, mo`ete da seopredelite {ta `elite da se slede}e desi, tako da mo`ete da "u letu" napravite Web stranukoja se {alje nazad do pretra`iva~a.

PHP je postigao veliki uspeh. Danas ga koristi vi{e od 15 miliona Web strana. Naslede}im stranama }ete videti kako Web server mo`e da se natera da sa PHP-om radiono {to Vi `elite.

POGLAVLJE 1

Osnove PHP-a

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 2: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

2

Po~etak rada sa PHP-omPrvi korak u kreiranju interkativnih Web strana je da se dobije pristup do Web serverana kome PHP radi. Va{ Internet Service Provider (ISP) verovatno ve} podr`ava PHP. Tomo`ete proveriti ako pitate osoblje za podr{ku koje radi za tog ISP provajdera ili mo`eteda sami isprobate da li to radi. Postoje dva na~ina da sami probate podr{ku za PHP.

Prvi na~in je da, ako mo`ete, otvorite prozor za unos komandi i pove`ete se sa Webserverom preko nekog programa, kao {to su Telnet, SSH ili SSH2 (nemojte brinuti ako neznate kakve su to aplikacije, jer Vam u ovoj knjizi nije ni potrebno), otkucate php -v nakomandnoj liniji (u knjizi }emo kao oznaku za unos komande sa komandne linije koris-titi znak za %). Ako je PHP instaliran, rezultat treba da izgleda ovako:

%php -vPHP 5.0.0 (cli) (built: Jul 13 2004 21:39:58)Copyright (c) 1997-2004 The PHP GroupZend Engine v2.0.0, Copyright (c) 1998-2004 Zend Technologies

Drugi na~in da odredite da li je PHP instaliran je da probate neki PHP skript. Tomo`ete da uradite ako pro~itate odeljak "Kreiranje prvog PHP skripta" u ovom poglavlju.Ako skript radi, PHP je instaliran i sve je pode{eno.

NAPOMENA

Ako `elite da vidite listu ISP provajdera koji podr`avaju PHP, pogledajte adresuwww.php.net/links.php#hosts..

Lokalna instalacija PHP-aNije lo{e da na svom ra~unaru instalirate PHP tako da prilikom razvoja mo`ete da ispro-bate svoje skriptove. U tom slu~aju ne}ete morati da tro{ite vreme na prebacivanjeskriptova na ra~unar provajdera, da ih onda isprobate preuzimanjem u svompretra`iva~u, pa da u slu~aju gre{aka sve radite iz po~etka.

Neki operativni sistemi, kao {to su Linux i mnoge verzije Unixa, sada se isporu~ujusa ve} instaliranim PHP-om. Kod drugih operativnih sistema, kao {to su Windows iliMac OSX, mora}ete da sami preuzmete i instalirate PHP. Prvi korak je da proverite da liste instalirali PHP u lokalu. Primenite komandu php -v (ovo se radi u prozoru za unoskomandi - na primer, na Windowsu u DOS prozoru). Ako radi, onda je ve} sve pode{eno.

PHP mo`ete sami instalirati. Postoje unapred pripremljene verzije za razli~ite opera-tivne sisteme, koje se mogu preuzeti. Postoje verzije za operativne sisteme Windows,Mac OSX, Novell NetWare, OS/2, RISC OS, SGI IRIX 6.5x i AS/400. Binarni paket sa insta-lacijom za Windows mo`ete prona}i na adresi

PHP 5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 3: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

http://www.php.net/downloads.php. Tu su i linkovi na verzije za druge opera-tivne sisteme.

NAPOMENA

Binarne verzije za Linux i Unix se vi{e ne distribuiraju, po{to je PHP kod njih ve} instali-ran. Ako `elite, mo`ete da od izvornog koda napravite svoju instalaciju PHP-a. Idite naadresu http://www.php.net/downloads.php i preuzmite izvorni kod za PHP.

Instrukcije za instalaciju PHP mo`ete prona}i u dokumentaciji za PHP, koja se nalazina adresi http://www.php.net/docs.php (kompletnu dokumentaciju mo`ete dapruzmete sa adrese http://www.php.net/download-docs.php). Instrukcije za instalaciju na}i }ete i u datoteci za instalaciju (obi~no datoteka pod nazivom install.txt),koja se dobija kada se dekompresuje ono {to ste preuzeli. Po{to se instrukcije menjajusvaki put kada se promeni PHP i po{to postoji puno operativnih sistema i Web servera,trebalo bi da koristite najnovije instrukcije i da po njima postupate. Prikazivanje svihinstrukcija ovde bi oduzelo 20 strana, a one bi ionako zastarele do trenutka kada do|udo Vas.

Evo kako bi "stvari" mogle da izgledaju za Windows XP (detaljnije informacije semogu na}i u instrukcijama za intalaciju koje skidate sa Interneta). Prvo Vam je potreban Web server, kao {to su Apache ili Microsoftov Internet Information Server (IIS).Program za instalaciju Apache servera na Windows ((apache_2.0.52-win32-x86-no_ssl.msi) mo`e se preuzeti na adresi http://httpd.apache.org/dowload.cgi.Kada ovaj fajl preuzmete i dva puta ga brzo kliknete, instalira}e se Apache. IIS mo`eteda na Windows XP instalirate ako iz Control Panela izaberte dugme Add/RemovePrograms, izaberete dugme Add/Remove Windows Components, a onda izaberete IIS.

PHP se na Windows mo`e instalirati na dva na~ina. Ono {to je potrebno za obana~ina se mo`e preuzetu sa adrese http;//www.php.net/downloads.php. Postoji jednaposebna izvr{na datoteka za instalaciju na operativnom sistemu Windows, php-5.0.x-installer.exe, sa osnovnom podr{kom za PHP (tu su standradna pro{irenja, ali ne i oddrugih proizvo|a~a). Ova datoteka automatski konfiguri{e servere kao {to su IIS, PWS iXitami, a tu su i instrukcije za ru~no pode{avanje drugih servera, kao {to je Apache.

Drugi na~in instalacije je pomo}u -zip datoteke. Re~ je o datoteci php-5.0.x-Win32.zip, koja sadr`i punu instalaciju PHP-a, zajedno sa spo{aljnjim pro{irenjima (ovaopcija je bolja ako `elite da pokrijete sve {to postoji u ovoj knjizi). Preuzmite i raspaku-jte ovu datoteku. U njoj se nalaze i instrukcije za instalaciju. U zavisnosti od opera-tivnog sistema koji koristite, obi~no se datoteka php.exe kopira u odre|enu fasciklu.

Naredni korak je da instalaciju PHP-a pove`ete sa Web serverom. Ako ste raspakovali-zip datoteku na operativni sistem Windows XP i ako koristite Apache, trebalo bi dapromenite i datoteku http.cong. Ovo je konfiguraciona datoteka Apache servera. Akokoristite IIS, njega mo`ete konfigurisati koriste|i kozolu za upravljanje (izaberite StartÊSettingsÊControl PanelÊAdministrative ToolsÊInternet Services Manager) i pratiteinstrukcije za instalaciju (vi{e detalja mo`ete na}i u instrukcijama za instalaciju - unjima je detaljno "pokriven" svaki korak).

POGLAVLJE 1 Osnove PHP-a

3

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 4: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

4

Pode{avanje razvojnog okru`enjaDa biste mogli da pravite PHP strane, potrebanVam je neki editor teksta. PHP datotekesu me{avina HTML-a i PHP koda. Postoje razli~iti editori, koji se koriste na razli~itimoperativnim sistemima, kao {to su, na primer, vi, emacs, pico, BBEdit ili SimpleText zaMacintosh ili Notepad i WordPAd za Windows. Podrazumevana ekstenzija PHP datoteka je .php (na primer, myBigTimeWebPage.php).

Tekst se unosi kao obi~an tekst, ali predstavlja me{avinu HTML-a i PHP-a. Kao {to sevidi na slici 1.1, da biste napravili PHP stranu, morate da prvo unesete tekst prema slicii da ga upamtite u datoteci sa ekstenzijom .php. Ovaj primer je uglavnom HTML kod.PHP deo je skript koji se nalazi izme|u oznaka <?php i ?>. Kada ovaj dokument pogle-date u svom pretra`iva~u, server koji podr`ava PHP ~ita dokument, pronalazi PHP deo iautomatski ga izvr{ava. U ovom slu~aju PHP kod je samo jedna linija phpinfo();, koja }eprikazati HTML tabelu sa informacijama o instalaciji PHP-a na serveru, kao {to ste videliu primeru "Kreiranje prvog PHP skripta".

Slika 1.1Kreiranje PHP strane sa HTML kodom u njoj

PHP 5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 5: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

NAPOMENA

WordPad editor u Windowsu ima dosadnu naviku da nazivu datoteke dodaje ekstenz-iju .txt. Ovo se de{ava u slu~aju da ne prepoznaje ekstenziju. Ako tekstualni dokumentpoku{ate da upamtite sa ekstenzijom .PHP, WordPAd }e napraviti ekstenziju .PHP.txt.Ovo mo`ete da izbegnete ako u trenutku zapisivanja datoteke naziv stavite poddvostruke navodnike, na primer "logbook.php". Tako|e treba da imate na umu daWordPAd podrazumevano datoteke pamti u rtf ili doc (Microsoft Word) formatu, u zav-isnosti od verzije Windowsa koju koristite. Da biste bili sigurni da su Va{i XML doku-menti u obi~nom tekstualnom formatu, iz padaju}e liste Save as type, koja se nalazi uokviru za dijalog Save Aa, izaberite opciju Text Document.

^ak mo`ete i da programe za obradu teksta, kao {to je Microsoft Word, koristite zakreiranje PHP dokumenata. Potrebno je samo da datoteku zapamtite kao obi~nu tekstualnu datoteku, a ne u nekom drugom formatu, kao {to je .doc (na primer, u Wordumo`ete da iz padaju}e liste Save as type, u okviru za dijalog Save As, izaberete opcijuText Only). Ipak je mnogo bolje da radite sa obi~nim editorom teksta, a ne sa pro-gramom za obradu teksta, po{to programi za obradu teksta dodaju neke karakteristikei dekoraciju koji nisu potrebni.

Za kreiranje PHP datoteka mo`ete da koristite i neko integrisano razvojno okru`enjeza PHP (IDE). U ovakvim okru`enjima imate na raspolaganju alate kojih nema kodobi~nih tekstualnih editora. Tu mislim na automatsku proveru onog {to ste napisali dabiste bili sigurni da je PHP kod ispravan i automatsko isticanje sintakti~kih elemenata(na primer, klju~ne re~i PHP-a se prikazuju u drugoj boji, tako da lako mo`ete da vidite{ta ste uradili). Tu je i automatsko postavljanje, jer IDE mo`e da prebaci Va{e PHP stranekod Va{eg ISP provajdera ako kliknete odgovaraju}e dugme ili iz menija izaberete odgo-varaju}u stavku.

Evo liste IDE okru`enja koja podr`avaju PHP, a koja mo`ete preuzeti sa Interneta.Treba da imate na umu da ve}ina ovih okru`enja nije besplatna.

l Komodo (www.activestate.com/Products/Komodo) radi na Windowsu i Linuxu.

l Maguma (www.maguma.com) radi samo na Windowsu.

l PHPEdit (www.phpedit.com/products/PHPEdit) besplatan je, ali radi samo na Windowsu.

l Zend Studio (www.zend.com/store/products/zend-studio.php) radi na Windowsu i Linuxu. Ovo je okru`enje koje su napravili isti ljudi koji su

napravili Zend softver ma{inu, koja radi kao jezgro samog PHP-a.

Ako radite sa nekim ISP provajderom, potreban Vam je i neki na~in za transport PHPstrana na njegov ra~unar. Isto je va`i i za obi~ne HTML strane. Mo`ete koristiti FTP (FileTransfer Protocol) program ili Web interface, ako takav postoji. Ako ranije niste prebacivali Web strane na ra~unar provajdera, konsultujte se sa provajderovimosobljem za podr{ku. Ti ljudi }e Vas verovatno uputiti na neki FTP program ili Webinterfejs koji su napravili. PHP strane se prebacuju i pokre}u isto kao i obi~ne HTMLstrane, naravno ako server podr`ava PHP.

POGLAVLJE 1 Osnove PHP-a

5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 6: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

6

Kreiranje prvog PHP skriptaSve po~inje kreiranjem PHP skripta. Sa PHP-om koji radi na serveru mo`ete da raditemnogo {to{ta {to ranije niste mogli: da vadite podatke iz baze podataka, da proveritene~iju lozinku, da od{tampate tekst dobrodo{lice, da koristite "kola~i}e", da praviteknjigu posetilaca, da pravite interaktivne strane, da ra~unate porez, ili ~ak da pravitesvoje aplikacije za rad sa potro{a~kom korpom. Sve to mo`e da radi nezavisno 24 ~asadnevno, ~ak i kada Vi mirno spavate u svom krevetu.

Va{a prva PHP strana }e biti jednostavna, sa jednostavnim PHP skriptom. Na istojWeb strani mo`ete da me{ate PHP i HTMO, ali morate da imate na raspolaganju nekina~in da ih dr`ite odvojeno. Ovo se radi tako {to se PHP kod pi{e u okviru specijalnihtagova <?php i ?>:

<?php.. Your PHP goes here.....?>

NAPOMENA

Ovo se jo{ mo`e skratiti ako u datoteci php.ini uklju~ite opciju short tags (skra}eneoznake). To je datoteka koju PHP koristi za konfiguraciju. U tom slu~aju mo`ete dakoristite samo oznake <? i ?>. Ja to ne bih preporu~io, po{to }e Va{i skriptovi ~estobiti upotrebljavani i na drugim serverima, pored onog koji ste Vi podesili, tako da mo`edo}i do konflikta sa drugim skript jezicima.

Unutar ovih oznaka se nalaze PHP skriptovi, koji se sastoje od PHP iskaza, kojizavr{avaju znakom ta~ka-zarez. Taj znak je bitan, po{to on "saop{tava" PHP-u da jeteku}i red zavr{en. Mo`da ste radili sa drugim skript jezicima, kao {to je JavaScript, kodkojih je upotreba znaka ta~ka-zarez opciona, kod PHP-a ona je obavezna.

Na{ prvi PHP skript je bio standardan. Koristili samo samo jedan iskaz - phpinfo().Kao {to }ete videti, PHP iskazi mogu da rade razli~ite stvari. Ovaj koristi funkciju phpinfo, koja prikazuje informacije o verziji PHP-a koja se koristi. Kada takvu funkcijupozovete po nazivu, izvr{avaju se svi iskazi koji se u njoj nalaze. Funkcija phpinfo jejedna od mnogih funkcija koje su ugra|ene u PHP i koje su spremne za upotrebu.Funkcije mogu da sadr`e stotine redova koda, a sve {to mi treba da uradimo je da tufunkciju pozovemo preko njenog naziva.

PHP 5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 7: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

U ovom slu~aju }e funkcija phpinfo kreirati HTML tabelu u kojoj se nalaze informa-cije o Va{oj instalaciji PHP-a. Evo kako se funkcija poziva preko jednog iskaza:

<?phpphpinfo();

?>

Unesite ovaj skript u svom editoru teksta, kao {to je pokazano za slu~aj WordPadana slici 1.2, i upamtite datoteku pod nazivom phpinfo.php. Nemojte zaboraviti dadatoteku upamtite kao obi~an tekst. Ako ona nije upam}ena na taj na~in, PHP }e imatiproblema sa njom (jedan od na~ina da to proverite je da pogledate kompletan nazivdatoteke u DOS prozoru pod Windowsom).

Slika 1.2Kreiranje prvog PHP skripta

^estitamo! Upravo ste kreirali svoj prvi PHP skript. Nije lo{e. Nakon {to ste kreiralidatoteku phpinfo.php, slede}i korak je da je upamtite na Web serveru, na mestudakle server mo`e da je pro~ita. Ako radite sa nekim ISP provajderom, prebacitedatoteku phpinfo.php na mesto gde se sme{taju standardne Web strane. To }ete uraditi isto kao {to prebacujete i obi~ne HTML strane pomo}u FTP programa ili Webinterfejsa.

Ako radite u lokalu i ako ste na svom ra~unaru instalirali PHP i Web server, datotekuphpinfo.php stavite na mesto gde server mo`e da je prona|e. Kod Apache servera to jefascikla htdocs, koja se nalazi ispod fascikle na kojoj je instaliran Apache. Kod IISservera to je fascikla inetpub/wwwroot. Na Linuxu to mo`e biti fascikla/var/www/html. Nakon {to ste proverili da li je Va{ Web server konfigurisan da radi saPHP-om (prema instrukcijama za instalaciju koje ste preuzeli sa sajta www.php.net),pokrenite Web server.

POGLAVLJE 1 Osnove PHP-a

7

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 8: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

8

Izvr{enje prvog PHP skriptaDa biste izvr{ili datoteku phpinfo.php, treba samo da je otvorite u svom pretra`iva~u,kao i bilo koju drugu Web stranu. To zna~i da je potrebno da pretra`iva~ usmerite naURL adresu za phpinfo.php (na primer http;//www.vasisp.com/korisnickoime/phpin-fo.php). Ako PHP koristite lokalno, potra`ite adresu http:/localhost/phpinfo.php.

NAPOMENA

Nemojte da datoteku phpinfo.php otvarate direktno u pretra`iva~u preko menija FileÊOpen, po{to }e se time ona otvoriti bez prolaza preko Web severa, tako da ni PHPskript ne}e raditi. Treba da budete sigurni da ste uneli pravi URL.

Ako je sve u redu, trebalo bi da se prika`e tabela sa informacijama o PHP-u, sli~noslici 1.3. ^estitamo - postali ste PHP programer! Ovde je prikazano vi{e tabela. Akokrenete nani`e, mo`ete da prona|ete informacije o Va{oj konfiguraciji PHP-a. Ako ste seikad pitali koja je verzija PHP-a kod Vas instalirana, sada je trenutak da to proverite.

Slika 1.3Rezultat prvog PHP skripta

PHP 5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 9: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

[ta u~initi ako ovo ne radi?Na`alost, {to{ta mo`e da "po|e naopako" kada prvi put poku{avate da pokrenete PHP.Ako ne ide sve po planu, nemojte pani~iti. Potrebno je samo da utro{ite malo dodatnogvremena. Mo`da ste dobili praznu stranu, ili ili poruku da datoteka nije prona|ena, ilise pojavila neka druga greška. Bez obzira {ta se desilo, problem se mo`e re{iti.

Prvo {to treba da proverite, ako PHP radi u lokalu, je da vidite da li je PHP podignut.Na komandnoj liniji u fascikli sa instalacijom PHP-a i otkucajte php -v. Ako se prika`everzija PHP-a, onda on radi. Ako mo`ete da komandnu liniju otvorite i na ra~unaru svogISP provajdera, na primer, preko Telneta ili SSH2 aplikacije, mo`ete da izvr{ite isti test.

Slede}e {to treba da proverite je da li je PHP instaliran na pravi na~in. Ovo je problem koji dovodi do prikazivanja prazne strane i, kada u svom pretra`iva~uizaberete opciju view source, mo}i }ete da vidite PHP skript. To zna~i da Web server nijeprosledio skript do PHP-a koji treba da ga izvr{i. Ovo mo`e biti problemati~no i to jerazlog {to su instrukcije na sajtu www.php.net tako obimne. Najbolja ideja je da svepro~itate jo{ jednom, red po red, i tako proverite da li ste uradili sve {to je tamo nave-deno.

Nakon toga, treba da proverite da li je datoteka phpinfo.php tamo gde Web servero~ekuje da bude. Kao {to sam pomenuo, kod Apache servera lokacija je fascikla htdocs,koja se nalazi u fascikli gde je Apache nstaliran. Kod IIS-a to je fascikla inetpub/www-root. Na Linuxu to mo`e biti /var/www/html. Prava fascikla mo`e biti razli~ita u zavisnosti od servera koji se koristi. Na PH serveru koji ja koristim prava fascikla je/httpdocs/ROOT. Ako ste phpinfo.php prebacili na uobi~ajeni direktorijum na ra~unaruprovajdera (tamo gde se stavljaju HTML strane) i ako to ne radi, pitajte ISP provajdera.Ponekad je potrebno da on defini{e podr{ku za odre|ene fasickle. Neki ISP provajderitra`e da za svoje PHP skriptove koristite drugu ekstenziju, kao {to je, na primer, .php5,u slu~aju verzije PHP5.

NAPOMENA

Da li za PHP skriptove morate da imate specijalna pode{avanja pristupa u slu~aju dakoristite Unix? Moraju li datoteke da budu definisane kao izvr{ne? Ne, jednostavnapode{avanja 644 (ne 755) }e biti dovoljna.

Ako koristite IIS, treba da u datoteci php.ini proverite da li stoji cgi.force_redirect= 0. Prema instrukcijama za instalaciju pode{avanje se mora isvr{iti na ovaj na~in. Akotog reda nema u ovoj datoteci, dodajte ga.

Na kraju mo`ete i da pogledate odeljak "Problemi" u instrukcijama za instalaciju.PHP FAQ (naj~e{}e postavljana pitanja) na adresi www.php.net/FAQ.php mogu dapomognu pri re{avanju problema, a isto va`i i za pitanja na adresi www.php.net/man-ual/faq.installation. Mo`ete da proverite i u arhivama za instalaciju PHP-a, na adresihttp://marc.theaimsgroup.com/?l=php-install/r=1/w=2 ili u novostima na adresialt.php ili comp.lang.php.

POGLAVLJE 1 Osnove PHP-a

9

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 10: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

10

PHP 5

Me{anje sa HTML kodomPHP datoteke naj~e{}e predstavljaju me{avinu HTML-a i PHP skriptova. PostavljanjeHTML-a i PHP skriptova u isti dokument nije problem, po{to se PHP iskazi nalazeizme|u oznaka <?php i ?>, {to zna~i da server mo`e lako da ih prepozna.

Ve} znate kako HTML radi na Web stranama. Ako, na primer, ubacite neki HTML kodkoji prikazuje tekst, tekst se prikazuje kada Web server stigne do reda na strani u komese nalazi taj tekst. Sli~no tome, ako PHP skript kreira neki tekst koji treba da se ubaci naWeb stranu i po{alje nazad do pretra`iva~a, tekst se na stranu ubacuje na mestu gde jebio skript.

Pogledajte primer 1.1, phphtml.php. U datoteci se nalazi me{avina HTML-a i PHP-a.Kao {to vidite, HTML defini{e naslov dokumenta (koji se prikazuje u zaglavljupretra`iva~a), pri ~emu se preko oznake <H1> prikazuje tekst Mixing HTML and PHP, i tovelikim masnim slovima.

Primer 1.1 Me{anje PHP-a i HTML-a

<HTML><HEAD>

<TITLE>Mixing HTML and PHP!

</TITLE></HEAD>

<BODY><H1>

Mixing HTML and PHP!</H1><?php

phpinfo();?>

</BODY></HTML>

Nakon HTML elementa <H1> server nailazi na PHP skript, {to zna~i da se izlaz izfunkcije phpinfo ubacuje na Web stranu, koja se {alje nazad do pretra`iva~a. Izlaz seubacuje ba{ na tom mestu. Kao {to znate, funkcija phpinfo kreira HTML tabelu sainformacijama o instalaciji PHP-a, tako da rezultat treba da izgleda kao na slici 1.1.Prvo se prikazuje HTML zaglavlje, a onda sledi tabela sa informacijama o PHP-u.

@elite da PHP strana izgleda vi{e zvani~no? Na adresi "http://www.php.net/down-load-logos.php se nalazi vi{e logoa tipa "Ra|eno u PHP-u". Samo ih preuzmite i ubacitena Web stranu pomo}u elementa <IMG>, kao u slede}em primeru:

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 11: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

POGLAVLJE 1 Osnove PHP-a

11

<HTML><HEAD>

<TITLE>Mixing HTML and PHP!

</TITLE></HEAD>

<BODY><H1>

Mixing HTML and PHP!</H1><?php

phpinfo();?><IMG SRC=”php-power-white.gif”>

</BODY></HTML>

Slika 1.4 Me{anje PHP-a i HTML-a

Na slici 1.5 mo`ete videti primer sa skinutom slikom php-power-white.gif, koja seprikazuje na Web strani.

Slika 1.5Ubacivanje PHP logoa

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 12: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

12

PHP 5

Kako }ete od{tampati neki tekst?Iskaz echo, koji na Web stranu ubacuje tekst, predstavlja jedan od iskaza koji se u PHP-u najvi{e koriste. Mi }emo taj iskaz koristiti za prikazivanje ne~eg {to je ura|eno uPHP-u. Po~e}emo odmah.

Iskaz echo se koristi jednostavno pomo}u klju~ne re{i echo, iza ~ega pod navodnici-ma sledi tekst koji treba da se prika`e. U slede}em skriptu mo`ete videti kako seprikazuje tekst "Hello from PHP".

<HTML><HEAD>

<TITLE>Using the echo statement

</TITLE></HEAD>

<BODY><H1>

Echoing some text:</H1><?php

echo “Hello from PHP.”;?>...

Po{to na HTML strani mo`ete da imate vi{e razbacanih skriptova, tekst mo`ete daprikazujete na vi{e mesta. To smo pokazali na primeru 1.2, echo.php.

Primer 1.2 rad sa iskazom echo

<HTML><HEAD>

<TITLE>Using the echo statement

</TITLE></HEAD>

<BODY><H1>

Echoing some text:</H1><?php

echo “Hello from PHP.”;?><H1>

Echoing some more text:

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 13: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

POGLAVLJE 1 Osnove PHP-a

13

</H1><?php

echo “Hello from PHP again!”;?><IMG SRC=”php-power-white.gif”>

</BODY></HTML>

Rezultat je prikazan na slici 1.6.

Slika 1.6Upotreba iskaza echo

Tekst koji `elite da prika`ete mo`ete da stavite pod jednostruke ili dvostruke navodnike. Preko ovog iskaza mo`ete da prikazujete brojeve bez navodnika. To izgledaovako:

Echo 111555;

Po{to ono za {ta koristimo iskaz echo ide na Web stranu (osim ako PHP pozivate sakomandne linije), mo`e biti korisno da na taj na~in {aljete i HTML oznake nazad do pretra`iva~a. Na primer, ako `elite da se svaka re~ pojavi u drugom redu, mo`ete daHTML iskaz <BR> upotrebite na slede}i na~in:

echo "Hello<BR>from<BR>PHP.";

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 14: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

14

PHP 5

Dodatna snaga kod {tampanjaIzme|u prikazivanja teksta na komandnoj liniji i u pretra`iva~u postoji razlika. U pretra`iva~u mo`ete da koristite HTML elemente, kao {to su <BR> ili <P> i da tako formatirate svoj tekst. Kada tekst {tampate sa komandne linije, za formatiranje mo`eteda koristite specijalne karaktere (ako tekst stavite pod dvostruke navodnike). Evo kojisu karakteri specijalni:

\n Novi red

\r Return

\t Tab

\\ Prikazuje se \

\$ Prikazuje se $.

\" Prikazuje se ".

\0 do \777 Prikazuje se karakter koji odgovara heksadecimalnom (sa osnovnom 8) kodu.

\x0 do \xFF Prikazuje se karakter koji odgovara heksadecimalnom (sa osnovom 16) kodu.

Na primer, iskaz echo "Line 1\nLine 2" prikazuje tekst "Line 1" u jednom redu i"Line 2" u slede}em (ako PHP radi na komandnoj liniji). U pretra`iva~u karakter \n nezna~i ni{ta. Isti rezultat biste dobili ako biste napisali "Line 1 <BR> Line 2".

NAPOMENA

Ako tekst prikazujete u pretra`iva~u, morate ga formatirati pomo}u HTML oznaka. Akou tekst stavite nove redove, ne}e se ni{ta desiti, po{to pretra`iva~ zanemaruje te noveredove, kao i na bilo kojoj Web strani. Ako `elite da tekst formatirate na neki na~in,morate koristiti PHP skript i u pretra`iva~ slati ispravan HTML kod.

Ako `elite, mo`ete da duga~ak string koji je pod navodnicima u Va{em skripturazlo`ite na nekoliko redova. Ti novi redovi }e se prikazati ako {tampate sa komandnelinije. Ako {tampate sa Web strane, prekidi redova }e se zanemariti.

<?phpecho "This textspansmultiplelines.";?>

Stavke koje {tampate mo`ete i da odvojite zarezima. Evo kako se to radi:

echo "Hello", "this", "is", "PHP.";

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 15: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

POGLAVLJE 1 Osnove PHP-a

15

Sve stavke koje ste na ovaj na~in od{tampali {tampaju se jedna iza druge:

HellothisisPHP.

Ako `elite da izme|u re~i ubacite razmake, mo`ete da uradite slede}e:

echo "Hello ", "this ", "is ", "PHP.";

Tada }ete dobiti:

Hello this is PHP.

Ako `elite da od{tamapte neki specijalni karakter (kao {to je "), a da pri tome nenaredite PHP-u da prekine tekst (po{to je " oznaka za kraj teksta), mo`ete da koristite\". Evo kako se to radi:

echo "He said, \"I like ice cream.\"";

Ovo se naziva izvla~enje (escape) navodnika, tako da PHP prikazuje njega, a ne treti-ra ga kao oznaku kraja teksta.

Vi{e posebnih nizova karaktera mo`ete da u PHP-u spojite pomo}u ta~ke (.). Evoprimera:

echo "Hello " . "this " . "is " . "PHP.";

U ovom slu~aju PHP uzima izraz "Hello " . "this " . "is " . "PHP." i sklapa re~izajedno (ovo se naziva konkatenacija) u jedan niz karaktera. Taj string se nakon togaprosle|uje iskazu echo.

Evo nekoliko primera koji pokazuju kako se koristi iskaz echo:

echo 11115555; prikazuje: 11115555echo "Hello from PHP."; prikazuje: Hello from PHP.echo 'Hello from PHP.'; prikazuje: Hello from PHP.echo "Hello", "from", "PHP."; prikazuje: HellofromPHP.echo "Hello " . "from " . "PHP."; prikazuje: Hello from PHP.

Pored iskaza echo, mo`ete da koristite i PHP iskaz print. On ima istu sintaksu: print"Hello from PHP.";. Koja je razlika izme|u iskaza echo i print? Nije velika. Print je vi{ePHP funkcija (pogledajte Poglavlje 4 o funkcijama), tako da on vra}a vrednost koja jeuvek 1. Kao i kod drugih funkcija, i ovde mo`ete da tu vrednost pro~itate, ali u ovomslu~aju sa njom ne mo`ete mnogo da radite. U ve}ini prakti~nih primera echo i printrade isto, tako da mo`ete da koristite bilo koji od njih.

[tampanje dokumenata na licu mesta

Evo jo{ jedne opcije za {tampanje. Mo`ete da kreirate dokumente na licu mesta, koji{tampaju sve {to ~itaju, sve dok ne do|u do tokena za kraj (obi~no END). Ovaj tokenmora biti postavljen na po~etku poslednjeg reda. U primeru 1.3 je pokazano kako toizgleda:

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 16: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

16

PHP 5

Primer 1.3 [tampanje dokumenta na licu mesta

<HTML><HEAD>

<TITLE>Displaying here Documents

</TITLE></HEAD>

<BODY><H1>

Displaying here Documents</H1>

<?phpecho <<<ENDThis example uses “here document” syntax to display all the text until the ending token is reached.END;?>

<BR><BR><IMG SRC=”php-power-white.gif”>

</BODY></HTML>

Rezultat ovog skripta je prikazan na slici 1.7.

Slika 1.7Prikazivanje dokumenta na licu mesta

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 17: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

POGLAVLJE 1 Osnove PHP-a

17

Izvr{avanje PHP-a sa komandne linijePored toga {to PHP mo`ete da pove`ete sa Web serverom tako da taj server ~ita skriptove i izvr{ava ih, PHP mo`e da se pokrene i sa komandne linije. To mo`e biti dobroza testiranje pre nego {to pre|ete na prebacivanje datoteka na ra~unar ISP provajdera.

PHP je jezik koji se interpretira. To zna~i da u trenutku izvr{enja PHP interpreter ~itaskript i interpretira svaki iskaz, konvertuju}i ga u kod koji ra~unar mo`e da izvr{i. Uverziji PHP 5.0 program koji interpretira komandnu liniju zove se Command LineInterpreter (CLI) i dato mu je ime php. Program koji radi na Web serveru zove se php-cgi.

PHP mo`ete da sa komandne linije pozovete komandom php. Morate biti sigurni dara~unar mo`e da prona|e php, {to zna~i da morate biti sigurni da je php (fascikla binPHP-a) u putanji na ra~unaru na kojem php radi. Na primer, pod pretpostavkom daimate skript echo.php:

<?phpecho “Hello from PHP.”;

?>

Ako je php u Va{oj putanji, onda ovo mo`ete da pokrenete sa komandne linije naslede}i na~in (% je oznaka za odziv na svim ra~unarima, a u konkretnom primeru sepodrazumeva da se nalazite u fascikli na kojoj je i program echo.php):

%php echo.php

Ako ovo funkcioni{e, prikaza}e se tekst

Hello from PHP.

Ako ne funkcioni{e, mo`ete da zadate ta~nu lokaciju php-a, koji bi na Unixu iliLinuxu mogla biti:

$/usr/local/bin/php echo.php

A na Windowsu

$/usr/local/bin/php echo.php

Program CLI ima puno opcija koje se koriste na komandnoj liniji, koje mo`ete koristiti za pode{avanja njegovog rada. Php }e Vam "re}i" sve o opcijama koje postojeako unesete php -h. Dobi}ete punu listu opcija:

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 18: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

18

PHP 5

%php -hUsage: php [options] [-f] <file> [--] [args...]

php [options] -r <code> [--] [args...]php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]php [options] -- [args...]

-a Run interactively-c <path>|<file> Look for php.ini file in this directory-n No php.ini file will be used-d foo[=bar] Define INI entry foo with value ‘bar’-e Generate extended information for debugger/profiler-f <file> Parse <file>.-h This help-i PHP information-l Syntax check only (lint)-m Show compiled in modules-r <code> Run PHP <code> without using script tags <?..?>-B <begin_code> Run PHP <begin_code> before processing input lines-R <code> Run PHP <code> for every input line-F <file> Parse and execute <file> for every input line-E <end_code> Run PHP <end_code> after processing all input lines-H Hide any passed arguments from external tools.-s Display colour syntax highlighted source.-v Version number-w Display source with stripped comments and whitespace.-z <file> Load Zend extension <file>.

Ako, na primer, `elite da dobijete jednostavnu tekstualnu verziju informacija koje{tampa funkcija phpinfo, mo`ete koristiti opciju -i. To se radi ovako: %php -i. Ve}znate da verziju PHP-a koja se koristi mo`ete dobiti pomo}u opcije -v (primeti}ete daCLI na komandnoj liniji "govori" da se koristi CLI).

%php -vPHP 5.0.0 (cli) (built: Jul 13 2004 21:39:58)Copyright (c) 1997-2004 The PHP GroupZend Engine v2.0.0, Copyright (c) 1998-2004 Zend Technologies

Na Linuxu i Unixu PHP skriptove mo`ete koristiti tako {to }ete uneti naziv skripta nakomandnoj liniji. Ovo je mogu}e ako pomo}u linije koja po~inje sa #! uka`ete na mestogde se nalazi PHP (i skriptu treba da date dozvolu da se izvršava):

#! /usr/bin/php<?php

echo "Hello from PHP.";?>

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 19: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

POGLAVLJE 1 Osnove PHP-a

19

Komentari su skriptovimaDo sada smo na Web stranama koristili ili HTML ili PHP skriptove. Njih treba da ~itara~unar. Postoji i komponenta koja je namenjena situaciji kada ~itanje obavljaju ljudi.To su komentari.

Komentari su napomene koje dodajete na svoje PHP strane da biste nekom objasnili{ta se de{ava. Ovo je bitno zato {to se, kada se na duga~ak i slo`en skript vratite posledu`e vremena, verovatno ne}ete se}ati {ta se u njemu radi. Mo`e se desiti i da svojskript date nekom drugom. Tada su potrebni komentari. Pomo}u komentara mo`ete daopi{ete pona{anje skripta, tako da kasnije lako mo`ete da shvatite o ~emu je re~.

U PHP-u postoje tri tipa komentara. Prva vrsta omogu}ava da pi{ete komentare uvi{e redova. Ovakvi komentari po~inju sa /* i zavr{avaju se sa */. Evo kako to izgleda:

<?php/* Start by displaying a

message to the user */

echo “Hello from PHP.”;?>

Mo`ete i da svaku liniju posebno ogradite sa /* i */ i da tako napravite blok kojiprivla~i vi{e pa`nje.

<?php/* Start by displaying a *//* message to the user */

echo “Hello from PHP.”;?>

Ugne`davanje komentara }e "ugu{iti" PHP, pa ga treba izbegavati. Slede}i kod ne bitrebalo koristiti:

<?php/* Start by

/* displaying a */message to the user */

echo “Hello from PHP.”;?>

Ovo ne}e da funkcioni{e po{to PHP tra`i oznaku za kraj komentara */; kada jeprona|e, pretpostavlja da je komentar zavr{en. To predstavlja problem, po{to komentarnije stvarno zavr{en, pa }e PHP zaklju~iti da tamo gde o~ekuje PHP iskaze postoji nekiobi~an tekst.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 20: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

20

PHP 5

Drugi tip komentara su komentari u jednom redu. Oni sadr`e tekst koji se nalazisamo u jednom redu. Za po~etak ovakvih komentara mo`ete koristiti // ili #.

<?php// Start by displaying a # message to the user

echo “Hello from PHP.”;?>

Ovakvi komentari su tako|e korisni, po{to se mogu postaviti u liniju u kojoj postojii kod. PHP }e zanemariti sve {to je iza oznake # ili //:

<?phpecho “Hello from PHP.”; //Display a messageecho “Hello from PHP again!”; #Display another message

?>

Ove komentare mo`ete tako|e koristiti za kreiranje blokova komentara:

<?php// Start by displaying a // message to the user

echo “Hello from PHP.”;?>

Da biste napravili ne{to {to zaista privla~i pa`nju, mo`ete da napi{ete:

<?php########################### Start by displaying a # #/ message to the user ##########################

echo “Hello from PHP.”;?>

U poslednje vreme preovla|uju komentari u jednom redu, po{to ih je lak{e napisati,tako da ne morate da brinete o njihovom zavr{etku. Komentari u vi{e redova ipak i daljeimaju svoje mesto, po{to se ~esto koriste na po~etku programa radi obja{njenja o ~emuje u tom programu re~. Oni se tako|e ponekad koriste kada se prave sopstvene funkci-je, u kom slu~aju komentar mo`e da objasni ~emu funkcija slu`i i kako se koristi.

Nije lo{e da u svom kodu koristite komentare koji razja{njavaju {ta se de{ava. Sadruge strane, ako preterate, mo`ete da zaklonite poentu, ali je, ipak, gore da komentarauop{te nema.

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 21: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

POGLAVLJE 1 Osnove PHP-a

21

Rukovanje podacima: promenljiveSve poruke koje smo do sada prikazivali bile su fiksne i nepromenljive.

<?phpecho “Hello from PHP.”;

?>

Ovim se samo prikazuje tekst i ni{ta vi{e. Ako bi to bilo sve, PHP ne bi ni bio potre-ban - isti efekat bi mogao da se postigne kori{}enjem HTML-a. Su{tina PHP-a je u dina-mi~kom rukovanju podacima. Za tu svrhu se koriste promenljive.

Promenljive su kontejneri podataka. Recimo, na primer, da prodajete {e{ire prekoWeba i da `elite da proverite ukupne zalihe u sva tri magacina, koji se nalaze u ~ikagu,Tokiju i Parizu. Da biste to uradili, morate da zajedno ubacite tri posebne vrednosti. PHPima ugra|enu podr{ku za matemati~ke operacije nad podacima, uklju~uju}i i sabiranje.Prema tome, da biste sabirali vrednosti, mo`ete da koristite operator +. Slede}i skript,na primer, {tampa "I have 6 tomatoes" (Imam {est paradajza).

<?phpecho “I have “ , 1 + 2 + 3 , “ tomatoes”;

?>

Primeti}ete da smo ovde koristili brojeve, {to je razli~ito od obi~nog teksta. Po{tobrojevi nisu tekst, nisu pod navodnicima. Rezultat je dobar, ali je jo{ uvek stati~ki, po{tosmo u skript jednostavno stavili 1+2+3. Kako }emo sabrati brojeve koji pokazujukoli~ine {e{ira u ~ikagu, Tokiju i Parizu?

To je trenutak kada "u igru" ulaze promenljive. U PHP-u one po~inju oznakom zadolar $. Promenljive mogu da sadr`e podatke; ako u promenljivim pod nazivima$~ikago, #tokyo i $paris smestite broj {e{ira, evo kako biste mogli da to sabirate uvreme izvr{enja:

<?phpecho “I have “ , $chicago + $tokyo + $paris , “ party hats!”;

?>

Ispravan naziv promenljive u PHP-u po~inje slovom ili podvlakom, iza ~ega slediproizvoljan broj slova, broja ili podvlaka. Naziv mo`e imati proizvoljnu du`inu. Evonekih ispravnih naziva promenljivih: $pizza_temperature, $_number_of_tigers,$planet_number_9.

Kao {to vidite, promenljive se pona{aju kao skladi{te za podatke. Kako }ete tepodatke smestiti u promenljive?

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 22: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

22

PHP 5

Dodeljivanje vrednosti promenljivimKada u PHP-u `elite da kreirate promenljivu, podatke joj dodeljujete pomo}u operatoradodele. Operatore dodele koji postoje u PHP-u }emo detaljnije predstaviti u Poglavlju 2,a sada }emo objasniti samo onaj koji se najvi{e koristi - operator jednako =. Evo jednogprimera u kojem se koristi operator jednako za dodeljivanje vrednosti novimpromenljivim (nakon {to se ovaj program izvr{i, promenljiva $temperature }e imativrednost 69, vrednost $pi iznosi}e 3.14159265, itd).

$temperature = 69;$number_of_earths = 1;$pi = 3.1415926535;$reassurance = "No worries.";

Primeti}ete da smo nekim promenljivim dodelili broj~ane, a nekim tekstualne vrednosti. U pojedinim jezicima morate da zadate tip promenljive (na primer, string iliinteger), ali u PHP-u to ne va`i, pa je sve mnogo lak{e.

NAPOMENA

Ra~unar interno za skladi{tenje koristi tipove podataka, tako da treba da znate {tamo`e da se desi ako podatke nepravilno unesete. Vi{e detalja o tipovima podatakamo`ete prona}i u odeljku "Rukovanje tipovima podataka" u ovom poglavlju.

Pogledajte primer phpvariables.php, koji smo dali u primeru 1.4. U ovom slu~ajusmo promenljivoj $apples dodelili vrednost 1, a zatim smo prikazali vrednost koja je utoj promenljivoj.

echo “Setting number of apples to 1.<BR>”;$apples = 1;echo “Number of apples: “, $apples, “<BR>”;

.

.

.

Recimo da sada `elite da pove}ate broj jabuka za tri. To mo`ete uraditi ako vrednosti $apples dodelite trenutnu vrednost $apples, uve}anu za 3, nakon ~ega novirezultat treba da se prika`e.

echo “Setting number of apples to 1.<BR>”;$apples = 1;echo “Number of apples: “, $apples, “<BR>”;echo “Adding 3 more apples.<BR>”;$apples = $apples + 3;echo “Number of apples now: “, $apples, “<BR>”;

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 23: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

POGLAVLJE 1 Osnove PHP-a

23

Primer 1.4 Dodeljivanje vrednosti promenljivim

<HTML><HEAD>

<TITLE>Assigning values to variables

</TITLE></HEAD><BODY>

<H1>Assigning values to variables

</H1><?php

echo “Setting number of apples to 1.<BR>”;

$apples = 1;

echo “Number of apples: “, $apples, “<BR>”;

echo “Adding 3 more apples.<BR>”;

$apples = $apples + 3;

echo “Number of apples now: “, $apples, “<BR>”;?>

</BODY></HTML>

Rezultat je prikazan na slici 1.8. Sada vidite kako se u vreme izvr{enja koristi matematika, kako se podaci sme{taju u promenljive i kako se manipuli{e podacima.

Slika 1.8Dodeljivanje vrednosti promenljivim

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 24: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

24

Ubacivanje promenljivih u nizove karakteraVrednosti promenljivih mo`ete prikazati na slede}i na~in:

$apples = 1;echo "Number of apples: ", $apples, ".";

Postoji i lak{i na~in. Vrednosti promenljivih mogu da se ubace u niz karaktera ako ihstavite u niz karaktera ome|en dvostrukim (ne jednostrukim) navodnicima, {to zna~ida se njihove vrednosti ubacuju direktno u string. Primenom ove tehnike na{ prethodni primer izgleda ovako:

$apples = 1;echo "Number of apples: $apples.";

Ovaj primer }e od{tampati Number of apples: 1. U primeru 1.5,phpinterpolation.php, dali smo kompletan prethodni primer. U njemu se posle dodelji-vanja prikazuju vrednosti promenljivih, a koristi se i umetanje promenljivih u string.

Primer 1.5 Ubacivanje promenljivih u nizove karaktera (stringove)

<HTML><HEAD>

<TITLE>Interpolating variables

</TITLE></HEAD><BODY>

<H1>Interpolating variables

</H1><?php

echo “Setting number of apples to 1.<BR>”;

$apples = 1;echo “Number of apples: $apples <BR>”;echo “Adding 3 more apples.<BR>”;$apples = $apples + 3;echo “Number of apples now: $apples <BR>”;

?></BODY>

</HTML>

Rezultat je prikazan na slici 1.9.

PHP 5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 25: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

Slika 1.9Ubacivanje vrednosti promenljivih u nizove karaktera

Ovo ubacivanje je brz na~in za prikazivanje sadr`aja promenljive, ali {ta u~initi akopromenljiva $text sadr`i tekst "news", a Vi `elite da na izlazu dobijete re~ "newspaper"?Mogli biste da probate slede}e:

<?php$text = “news”;

echo “Where’s the $textpaper <BR>”;?>

PHP ovo ne}e razumeti, po{to izgleda kao da se koristi promenljiva pod nazivom$textpaper. Gre{ka koju }ete dobiti je:

PHP Notice: Undefined variable: textpaper in C:\php\t.php on line 4

Ispravan na~in da se ovo uradi je da se promenljive ~iji se sadr`aj ubacuje ogradevelikim zagradama. U ovom slu~aju to je promenljiva $text (primer 1.6).

Primer 1.6 Pro{irivanje promenljivih u nizovima karaktera

<HTML><HEAD>

<TITLE>Interpolating variables

</TITLE></HEAD><BODY>

<H1>Interpolating variables

</H1><?php

$text = “news”;

echo “Where’s the {$text}paper.”;?>

</BODY></HTML>

POGLAVLJE 1 Osnove PHP-a

25

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 26: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

26

Kreiranje promenljivih promenljivih PHP omogu}ava da kreirate promenljive promenljivih. Promenljiva promenljiva je onakoja sadr`i naziv promenljive. Evo kako to radi. Prvo se napravi promenljiva - na primer,pod nazivom $apples:

<?php$apples = 4;

.

.

.?>

Nakon toga, kreirate novu promenljivu, ~iji }e naziv biti $fruitname. U nju }emosmestiti naziv promenljive $apples.

<?php$apples = 4;$fruitname = “apples”;

.

.

.?>

Promenljivoj $apples mo`ete da pristupite preko $$fruitname:

<?php$apples = 4;$fruitname = “apples”;echo “Number of apples: “, $$fruitname;

?>

Ovaj skript prikazuje slede}i rezultat:

Number of apples: 4

Kada koristite ubacivanje pomo}u dvostrukih navodnika, treba da budete izuzetnopa`ljivi, po{to PHP u tom slu~aju ima problema sa izrazima kao {to je $$fruitname.Ovomo`ete da re{ite pomo}u velikih zagrada: $($fruitname).

Primer 1.7, phpvariables.php, pokazuje kako ovo radi:

Primer 1.7 Upotreba promenljivih promenljivih

<HTML><HEAD>

<TITLE>Using variable variables

</TITLE></HEAD>

PHP 5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 27: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

<BODY><H1>

Using variable variables</H1><?php

$apples = 4;$oranges = 3;$fruitname = “oranges”;

echo “Number of oranges: ${$fruitname} <BR>”;

$fruitname = “apples”;

echo “Number of apples: ${$fruitname} <BR>”;?>

</BODY></HTML>

Rezultat ovog primera je dat na slici 1.10.

Slika 1.10Ubacivanje promenljivih promenljivih

Ako u prethodnom primeru ne biste koristili velike zagrade, dobili biste slede}i rezultat:

Number of oranges: $oranges <BR>Number of apples: $apples <BR>

Vrlo je va`no da shvatite promenljive promenljive. Mo`da Vam u ovom trenutku toizgleda samo kao neki kuruiozitet. One su konkretno vrlo korisne kada se radi sa petljama i nizovima, kao {to }ete videti u Poglavlju 3.

POGLAVLJE 1 Osnove PHP-a

27

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 28: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

28

Kreiranje konstantiPonekad ne}ete `eleti da promenljiva mo`e da se menja - `ele}ete da njena vrednostbude fiksna. Pretpostavimo, na primer, da imate promenljivu pod nazivom $pip kojasadr`i vrednost broja pi. Mo`e se desiti da se takva vrednost nenamerno promeni, {tonije dobro. Re{enje je da se napravi konstanta, ~ija vrednost ne mo`e da se menja.

Konstante se kreiraju pomo}u funkcije define. Konstanti se daju naziv i vrednost koju`elite da joj dodelite: define ("pi", 3.14159265);. Naziv konstante je uvek pod navodnicima, dok je vrednost koja se dodeljuje pod navodnicima samo ako je re~ ostringu (nizu karaktera). Pogledajte datoteku phpconstants.php u primeru 1.8. U ovomprimeru se kreira konstanta pod nazivom pi, posle ~ega se prikazuje. Obratite pa`njuda, kada koristite konstante, ne koristite prefiks $. Rezultat primera je dat na slici 1.11.

Primer 1.8 Kreiranje konstanti

<HTML><HEAD>

<TITLE>Using PHP constants

</TITLE></HEAD>

<BODY><H1>

Using PHP constants</H1><?php

define (“pi”, 3.1415926535);

echo “The constant pi holds “ , pi, “<BR>”;

?></BODY>

</HTML>

Slika 1.11Upotreba konstanti

PHP 5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 29: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

Ako probate da promenite vrednost ove konstante (na primer, pi = 3.14;), PHP ne}eto prihvatiti. ^ak se ni skript ne}e pokrenuti.

Pošto se ispred konstanti ne stavlja prefiks $, PHP mo`e da se "zbuni" ako za nazivkonstante upotrebite neku od rezervisanih re~i. U listi koja sledi su date klju~ne re~i:

Klju~ne re~i u PHP-u:

__CLASS__ __FILE__ __FUNCTION__ __LINE__ __METHOD__

and default endif global print

array die endswitch if require

as do endwhile include require_once

break echo eval include_once return

case else exception isset static

cfunction elseif exit list switch

class empty extends new unset

const enddeclare for old_function use

continue endfor foreach or while

declare endforeach function php_user_filter xor

Pored ovih klju~nih re~i, postoji i odre|eni broj konstanti koje su unapred definisanei koje mo`ete koristiti u svojim skriptovima. Evo primera:

__LINE__ Trenutni broj reda u datoteci

__FILE__ Puna putanja i naziv datoteke

__FUNCTION__ Naziv funkcije (ovo je dodato od verzije PHP 4.3.0)

__CLASS__ Naziv klase (ovo je dodato od verzije PHP 4.3.0)

__METHOD__ Naziv metoda klase (ovo je dodato od verzije PHP 5.0)

PHP_VERSION Verzija PHPa

PHP_OS Operativni sistem

DEFAULT_INCLUDE_PATH Gde da PHP tra`i ono {to mu je potrebno

Na primer, ako napi{ete echo _LINE_ na odre|enoj poziciji u skriptu, prikaza}e setrenutna linija koja se izvr{ava.

POGLAVLJE 1 Osnove PHP-a

29

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 30: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

30

Rukovanje tipovima podatakaVi ne mo`ete da odlu~ujete o na~inu na koji se Va{i podaci interno skladi{te. O tomeodlu~uje PHP. Iza scene, on podr`ava osam internih tipova podataka (sve tipove }eteupoznati u knjizi).

l boolean. Sadr`i vrednosti true/false (ta~no/neta~no).

l integer. Sadr`i cele brojeve, kao {to su -1, 0, 5, itd.

l float. Sadr`i brojeve sa pokretnim zarezom (tip double), kao {to su 3.14159 ili 2.7218.

l string. Sadr`i tekst, kao {to je "Zdravo iz PHP-a".

l array (niz), Sadr`i niz sa podacima.

l object. Sadr`i objekte iz programa.

l resource. Sadr`i resurse sa podacima.

l NULL. Sadr`i vrednost NULL.

Obi~no ne morate da brinete o ovim tipovima podataka, po{to PHP odre|uje tippromenljive na osnovu podataka koje joj dodelite. Na primer, slede}i iskaz }epromenljivoj $variable dodeliti tip string:

$variable = "No worries.";

Slede}i iskaz }e napraviti promenljivu tipa float:

$variable = 1.2345;

Slede}i iskaz }e napraviti promenljivu tipa boolean:

$variable = TRUE;

Po{to PHP bira tip podatka na osnovu podatka koji dodelite promenljivoj, ovde nemaproblema. Problemi po~inju kada po~nete da me{ate tipove - na primer, kadapromenljivoj $variable dodate vrednost pomo}u operatora + (o njemu }e biti re~i uPoglavlju 3). Evo nekoliko primera:

<?php$variable = "0"; // $variable je string pode{en na 0.$variable = $variable + 2; // $variable je sada ceo broj sa vredno{}u 2.$variable = $variable + 1.1; // $variable je sada tipa float sa vredno{}u 3.1.$variable = 2 + "8 apples"; // $variable je sada ceo broj sa vredno{}u 10?>.

PHP 5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 31: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

Ako ̀ elite da izbegnete potencijalne probleme sa tipovima podataka, nemojte me{atitipove. ^ak i ako to uradite, PHP }e skoro uvek "uraditi pravu stvar" (na primer, rezultatsabiranja celog i realnog broja }e konvertovati u realni broj, {to je upravo ono {to trebada se uradi), ali, ako je potrebno da eksplicitno zadate tip promenljive, uvek mo`etekoristiti iskaz type cast. Novi tip se stavlja izme|u zagrada odmah ispred nazivapromenljive ~iji tip `elite da zadate. Evo nekoliko primera:

$int_variable = (integer) $variable;$float_variable = (float) $variable;$string_variable = (string) $variable;

Evo nekoliko saveta u vezi sa me{anjem tipova podataka. Kada konvertujete u tipboolean, smatra se da su vrednosti tipa FALSE (o tome }e biti vi{e re~i kasnije u ovojknjizi):

l boolean FALSE

l integer 0

l float 0.0

l prazan string i string "0"

l Niz sa nula elemenata

l Objekat bez ~lanova

l Specijalni tip NULL (uklju~uju}i i promenljive koje nemaju vrednost)

Svaki drugi tip se smatra da je TRUE (uku~uju}i i resource). Kada konvertujete u tipinteger:

l Boolean FALSE }e dati 0 (nula), a Boolean TRUE }e dati 1 (jedan).

l Vrednosti tipa float se zaokru`uju prema nuli.

Kada konvertujete tip float, konverzija je ista kao kad je vrednost konvertovana uinteger, a onda u float. Konverziju mo`ete da vr{ite i iz integera u numeri~ke tipove, alito ponekad mo`e biti komplikovano (vi{e detalja sadr`i Poglavlje 3).

U narednom poglavlju }ete po~eti kontrolu svojih podataka u PHP skriptovimapomo}u operatora i iskaza za kontrolu toka i petlje, {to je veoma bitno za svakog PHPprogramera.

POGLAVLJE 1 Osnove PHP-a

31

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Page 32: Osnove PHP-a D - download.tutoriali.orgdownload.tutoriali.org/Tutorials/PHP/PHP_5_-_Osnove.pdf · Dobrodo{li u PHP! Zvani~no je PHP

32

Zaklju~akPHP omogu}ava da strane "o`ive" na na~in na koji to nije mogu}e sa stati~kim strana-ma. Evo nekoliko najbitnijih napomena za po~etak.

l Instrukcije za instalaciju PHP-a su razli~ite od jednog do drugog operativnog sistema i i od jedne do druge verzije i mogu biti vrlo komplikovane. Da biste instalirali PHP, pratite instrukcije koje dolaze sa PHP-om koji ste preuzeli sa Interneta.

l Svoju instalaciju PHP-a }ete proveriti ako na komandnoj liniji otkucate php -v.l Ako se prika`u informacije o PHP-u, mo`ete da mu pristupite.

l Da biste radili sa PHP-om, morate da podesite razvojno okru`enje, koje uklju~uje i neki editor teksta ili PHP IDE. Razvojno okru`enje bi trebalo da sadr`i i neki na~in za instalaciju PHP strana tamo gde server mo`e da ih pro~ita.

l U PHP skriptovima se izvr{ni kod nalazi izme|u oznaka <? i ?>. Na istu stranu mo`ete da ubacite i HTML kod, sve dok je taj kod izvan ovih oznaka.

l Iskaz echo prikazuje tekst u pretra`iva~u.

l Dokumenti tipa here omogu}avaju {tampanje svake re~i u tekstu dok se ne stigne do odre|enog tokena.

l U PHP-u postoje tri tipa komentara: /* */, // i #.

l Ispred naziva promenljivih stavlja se $. Ispravan naziv promenljive je onaj koji po~inje slovom ili podvlakom, a slede slova, brojevi i podvlake.

PHP 5

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com