php - ferpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.osnove...

29
SVEUILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAUNARSTVA SEMINARSKI RAD PHP Roko Konurat Zagreb, sijeanj 2005.

Upload: others

Post on 10-Jan-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

SVEU�ILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA�UNARSTVA

SEMINARSKI RAD

PHP

Roko Kon�urat

Zagreb, sije�anj 2005.

Page 2: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

2

Sadržaj

1. Što je PHP…………………………………………………………..….3

2. Osnove sintakse…………………………………………………….....4

3. Podržani tipovi……………………………………………………….....6

4. Varijable………………………………………………………………..12

5. Klase i objekti………………………………………………………….16

6. Kontrolne strukture……………………………………………………19

7. Rad s bazama podataka……………………………………………..24

8. Zaklju�ak……………………………………………………………….28

9. Literatura……………………………………………………………….29

Page 3: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

3

1.Što je PHP

Skra�enica PHP dolazi od engl. Hypertext Preprocessor. PHP je

skriptni jezik ugra�en u HTML (ugra�eni HTML kod ili engl. HTML-

embadded), �iji se kod izvršava na strani poslužitelja (engl. server-side)��

Zna�i da se svi PHP programi izvode na poslužitelju, a klijentu se potom šalje

samo rezultat izvo�enja, odnosno odgovaraju�i HTML kod. Na strani klijenta

se vidi samo HTML kod, dok je sam programski kod skriven od klijenta.

Kako izgleda ugra�eni HTML kod pokazuje slijede�i primjer:

�������

�����

������ �������������������������

������

�������

�������

���������� � ������������ �! �������� ���"�#��

���

��������

�������

Za razliku od Perl ili C++ programa koji se sastoje od puno duga�kih

komandi za generiranje HTML-a, piše se obi�ni HTML uz unutar HTML-a

dodani PHP kod za obavljanje nekog odre�enog posla (u gornjem primjeru,

ispisivanje teksta). Danas je PHP jedan od najpopularnijih skriptnih jezika za

pisanje web aplikacija. Mogu�nosti su velike, a uz to je PHP jako pogodan za

po�etnike s obzirom na lako�u programiranja u njemu.

Page 4: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

4

2.Osnove sintakse

2.1.Umetanje PHP koda u HTML

Postoje �etiri na�ina umetanja PHP koda u HTML. Sva �etiri primjera

umetanja prikazana su, za primjer, slijede�im HTML kodom:

������������������ ������������������������������������������$���%���

����������&�' ������������ ���������(��)#��������*���%���

���������&�+��������������� ���,�-./������./��������0������ �����(��)#����

���1���%���

�������������2������������&�������������� ���������������������������&�����3������)�)#�����������

���4���%���

�5�����&�+�����������������������+6 ���� 0������������� ���)#�5��

������������������

� Naj�es�e koristen je 2. na�in jer omogu�uje lagano implementiranje

novih generacija XHTML-a PHP kodom.

Page 5: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

5

2.2.Separatori

Instrukcije se u PHP-u odvajaju to�ka-zarezom ";" kao u C-u ili perlu.

Prije završnog taga (?>), to�ka-zarez(;) nije potreban pa su sljede�a dva

primjera ekvivalentna:

������������������ �������������������������������������

���������������#����

�������������������

�����������������

� 2.3.Komentari

PHP podržava 3 razlicita tipa komentiranja koda: C, C++ i Unix shell -

- style komentari. Primjeri komentiranja u PHP-u dani su slijede�im

ugra�enim HTML kodovima:

������������������ �������������������������������������

������

�����-������������#����' ����788�������������������������

�9�' ����������������������:������ �!�����9��

�����-��������������������#�

�����'��3����-���#�;�' ����<��=������������������

���

Page 6: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

6

�����������������

� Jednolinijski komentari idu do karja linije ili do kraja trenutnog bloka

PHP koda, ovisno o tome što prije do�e.

������������������ �������������������������������������

��$�-���������������;������������#���=�������$�����-�������� �>�������?-���������=���?��

�����������������

� Treba paziti da ne gnijezdimo C-like komentare, što se lako može

dogoditi prilikom komentiranja velikih blokova koda.

������������������ �������������������������������������

�������9�������-������������#��9�-�����������>����������������9��9�����

�����������������

� 3.Podržani tipovi

PHP podržava sljede�e tipove podataka:

• array (polje)

• floating-point numbers (brojevi s pomi�nim zarezom)

Page 7: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

7

• integer (cijeli brojevi)

• string (znakovni niz)

• object (objekt, iz ovog tipa se izvode svi tipovi)

Tip varijable naj�eš�e ne postavlja programer, nego ga PHP implicitno

postavlja ovisno o kontekstu u kojem se varijabla koristi. Upravo zbog te

slobode programera dosta �esto dolazi do grešaka u definiranju tipova. Da

se to ne bi dogodilo, možemo „castati“ varijablu uz pomo� settype() funkcije.

3.1.Integer tip podataka

Integer tip podataka se može definirati na bilo koji od sljedecih na�ina:

������������������ ��������������������������������������

������@�2�$*14#�;�������������@�2�A$*1#�;������ �������@�2�B$*1#�;������������&C�� �������D1������)�@�2�B=$*#�;��=������������&C�� �������$D������)����

����������������

Veli�ina integera ovisi o platformi na kojoj se PHP izvodi.

3.2.Brojevi s pomi�nim zarezom

Brojevi s pomi�nim zarezom mogu se definirati na sljede�e na�ine:

������������������ �������������������������������������

������

@�2�$�*14#��@�2�$�*1#�

Page 8: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

8

���

����������������

Veli�ina brojeva s pomi�nim zarezom ovisi o platformi, a naj�eš�a

maksimalna vrijednost je ~1.8e308 s preciznoš�u na 14 decimala (IEEE 64

bitni format).�

3.3.Znakovni niz (string)

Stringovi se mogu specificirati koriste�i jedan od dva seta delimitera.

Ako se string nalazi unutar dvostrukih navodnika ("), varijable unutar stringa

�e se koristiti. Kao i u C-u ili Perlu, za specificiranje escape znakova koristi

se backslash(\). Escape znakovi: \n, \r, \t, \\, \$, \", ...

Drugi na�in odvajanja stringova su jednostruki navodnici ('). Kad je string

unutar jednostrukih navodnika, jedini escape znakovi koje �e PHP razumjeti

su "\\" i "\'". Varijable navedene unutar jednostrukih navodnika se ne�e

koristiti kao varijable, vec kao najobi�niji niz znakova. Primjer sa stringom:

������������������ ��������������������������������������

������

�9�+������������������9��@����2��-���������������#�

�9�+���������������9��@����2�@��������>�������������=��#�

�9�+������>���������0�����������������>�����9��@�����2��������>������������(��#�

�9�-�����������>���������������?���E����F�G����?�9��@����2�G#�@����2�����E����F�@��������#�

�9�-�������>������?���E����F�@�������?�9��@����2�G#�@����2�?���E����F�@�������?#�

Page 9: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

9

�9�H�����I�������������I���������9��@����2�?-������������?#�@I�����2�@���JBK#�

�9�H�����������������I����������9��@����2�?-������������������?#�@����2�@���J�����&@���)A$K#�

����

����������������

� Znakovi unutar znakovnog niza se mogu dohva�ati kao da se radi o

broj�ano indeksiranom polju znakova, koriste�i sintaksu sli�nu C-u. Gore su

navedena dva primjera gdje se koristi takav dohvat. Tako�er, stringovi se

mogu nadovezivati koriste�i operator konkatenacije "." Primjer:

@����2�?L ���������?���?���� ��?#�

� 3.4.Polja (arrays)

3.4.1.Jednodimenzionalna polja

PHP podržava i skalarna i asocijativna polja. Ustvari, uopce nema

razlike izmedu ta dva tipa polja. Primjer:

������������������ �������������������������������������

������

@JBK�2�����#��@J$K�2���I�#��@�J�I���K�2�$1#�

����

����������������

Page 10: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

10

Tako�er, polje se može implicitno kreirati, jednostavno dodaju�i nove

vrijednosti u polje. Kada se doda vrijednost u polje koriste�i prazne uglate

zagrade, ta vrijednost �e se dodati na kraj polja. Primjer:

������������������ �������������������������������������

������

@JK�2�������#����@J*K�22��������@JK�2��>�����#����@J1K�22��>�������

����

����������������

Sortiranje polja se može napraviti na razlicite na�ine koriste�i

ugra�ene funkcije: asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), i

uksort() ovisno o tome koji tip sortiranja nam je potreban.

3.4.2.Višedimenzionalna polja

Višedimenzionalna polja su tako�er prili�no jednostavna. Primjer sve

govori:

������������������ �������������������������������������

������

@J$K�2�@I#�;��������������=�����@J�I���K�2�@I#��

@J$KJBK�2�@I#�;��>������������@J�I���KJ*K�2�@I#�;�&���������=������������������ �������)�@J1KJ����K�2�@I#�;�&���������=������������������ �������)�

@J�I���KJ4KJ����KJBK�2�@I#�;�I�������������"�

Page 11: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

11

����

����������������

� 3.5.Objekti

Za instanciranje objekta može se koristiti "new" da bi se instancirao

objekt koji se kasnije pridružuje varijabli. Primjer:

������������������ �������������������������������������

������

�����I���M�

I����������NI��&)�M��

�����O�����I����#��

P�

P�

@���2��>�I��#�@��A���NI��&)#�

���

����������������

U gornjem primjeru prvo definiramo klasu foo i unutar klase funkciju

do_foo() koja ispisuje tekst. Naredbom $bar=new foo; instanciramo objekt

izveden iz klase foo i pridružujemo ga varijabli $bar. Sada preko varijable

$bar možemo pokrenuti funkciju do_foo(). Ova problematika je pobliže

objašnjena u poglavlju o klasama i objektima.

Page 12: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

12

4.Varijable

4.1.Osnove

Varijable u PHP su ozna�ene dolar-znakom ($) iza �ega slijedi ime

varijable. Ime varijable je „case-sensitive“. Za imena varijabli vrijede ista

pravila kao i za ostale labele u PHP. Ispravno ime varijable po�inje s

podvlakom(_) ili slovom, a iza toga se mogu nalaziti brojevi, slova i podvlake.

Primjer:

������������������ �������������������������������������

������

�����I���M�@ ��2��Q���#�@R��2�����#������@ �0�@R��#�������������Q��0�����

@4����2�?������?#������ ���#�������>�����������@N4����2�?������?#���� ���#�������>���������������@�S���2�?������?#���� ���#�?S?����+67TT�**D��

���

����������������

U PHP 3, varijablama su uvijek pridružene vrijednosti. To zna�i, npr.

ako napišemo $var1=$var2 i poslije promijenimo vrijednost varijabli $var2, to

ne�e utjecati na $var1. U PHP 4 je uveden „assign-by-reference“, što zna�i

da neka nova varijabla jednostavno pokazuje na original varijablu. To se

izvodi tako da se doda znak & ispred varijable na koju želimo da nova

varijabla pokazuje. Primjer:

������������

Page 13: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

13

������ �������������������������������������

������

������@I���2�?Q��?#���� ��������� ���������?Q��?� �������@I���@���2�U@I��#���� �������@����������������I�������UI���@���2��.��������@���#����R�������@����������� ������������������������������� �������������@I��#����@I��������������������0���������@�������������@I�������@��#�����

����������������

T����F�

.��������Q����

.��������Q����

� 4.2.Predefinirane varijable

PHP pruža velik broj predefiniranih varijabli koje može koristiti svaka

pokrenuta skripta. Ipak, mogu�nost korištenja velikog broja od tih varijabli

ovisi o tome koji je server pokrenut, koja verzija, te o podešavanju servera i

drugim faktorima. Za listu svih predefiniranih varijabli koristi se funkcija

phpinfo(). Environment varijable su unesene u PHP-ov globalni namespace

iz okruženja u kojem je pokrenut PHP parser. Pošto okruženja ima puno, broj

razli�itih environment varijabli je ogroman, tako da je teško na�i definitivnu

listu svih environment varijabli. Za popis odgovaraju�ih environment varijabli

najbolje je pogledati dokumentaciju odgovaraju�e ljuske u kojoj je pokrenut

PHP parser.

4.3.Doseg varijabli

Doseg varijable u PHP je kontekst u kojem je varijabla definirana.

Najceš�e sve PHP varijable imaju jedan doseg koji uklju�uje i includane file-

ove i cijelu .php skriptu. Primjer:

Page 14: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

14

@�2�$#���������������#� U gornjem primjeru, varijabla $a se može koristiti i unutar b.inc skripte.

Kod korisni�ki definiranih funkcija situacija je malo druga�ija. Doseg

bilo koje varijable definirane unutar funkcije je ograni�en samo na tu funkciju.

Tako�er, varijable izvan funkcije ne vrijede unutar funkcije. Primjer:

������������������ ��������������������������������������

������

@�2�$#��9�������������9���

3��������-���&)�M������@#��9�� ������I����������������� �������@���������������9���P��

-���&)#�

���

����������������

Gore navedena skripta ne�e ispisati ništa, jer varijabla $a je razli�ita od

globalne varijable $a. Naravno da i za to ima rješenje. Ako želimo koristiti

globalne varijable unutar funkcije, moramo navesti klju�nu rijec global i potom

globalne varijable koje želimo koristiti. Primjer:

������������������ �������������������������������������

������

@�2�$#�@��2�*#�

Page 15: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

15

3��������6���&)�M�������@0�@�#�

@��2�@�8�@�#�P��

6���&)#�����@�#�

���

����������������

O�ekivano, ispis gornje skripte �e biti 3.

4.4.Varijable izvan PHP-a

HTML forme (GET i POST varijable)

Kada se forma pošalje PHP skripti, sve varijable iz te forme �e biti

dostupne u PHP skripti kojoj je šaljemo. Ako je track_vars postavljen na

TRUE, onda �e varijable iz forme biti dostupne u asocijativnim poljima

$HTTP_POST_VARS, $HTTP_GET_VARS i $HTTP_POST_FILES ovisno o

kakvim je varijablama rije�. Primjer jednostavne forme:

������������������ ��������������������������������������

�I���������2�I�������������2��������

E�F�����������2��=�����2�������������

����������2������������I�����

����������������

Kada se gornja forma ispuni i pošalje, vrijednost iz textbox-a �e biti dostupna

u polju HTTP_POST_VARS. Dakle, username u PHP skripti �emo dohva�ati

kao HTTP_POST_VARS['username']. Ako u konfiguraciju postavi

register_globals na TRUE, onda �emo username mo�i dohva�ati i kao

Page 16: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

16

$username. GET varijable se nalaze u QUERY-STRINGU. To je onaj

znakovni niz koji se pojavljuje u URL-u stranice iza upitnika...

Npr.: http://www.php.net/cal.php?id=1436

U gornjem URL-u prenesena je GET varijabla $id �ija je vrijednost 1436.

Moramo biti jako pažljivi pri prenošenju varijabli preko query-stringa ako se

radi o povjerljivoj informaciji, a tako�er i paziti da korisnik mijenjanjem query

stringa ne bi mogao do�i do neke sigurnosne rupe.

4.5.Konstante

U PHP-u se konstante definiraju uz pomo� funkcije define(). Slijedi

primjer:

������������������ ��������������������������������������

������

�I��&�7'E6-+E-�0�������>������)#�����7'E6-+E-#������������������>�������

���

����������������

Tako�er, postoje unaprijed definirane konstante.

5.Klase i objekti

Klasa je skup varijabli i funkcija koje rade s tim varijablama. Klasa se

definira koriste�i sljede�u sintaksu:

������������������ ��������������������������������������

Page 17: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

17

�����������V������M� ��@������#�������������������������O����@�����������@��I+����������������

I������������N������&@��I+�����0�@����)�M�

@����A�������J@��I+�����K�82�@����#�P�����T� ��@�����������@��I+����������������

I�������������N������&@��I+�����0�@����)�M�

�I�&@����A�������J@��I+�����K���@����)�M�

@����A�������J@��I+�����K�A2�@����#�

���������#�

P����M�

������I��#�

P��P�

�P����

����������������

Varijable unutar istog objekta se dohva�aju sa $this->imeVarijable

Gornji primjer definira klasu Kosarica koja se sastoji od polja artikala u

košarici i metoda za dodavanje i brisanje artikala iz košarice. Klase su tipovi,

odnosno, one su predložak za stvarne varijable. Da bi kreirali varijablu tipa

neke klase, potrebno je koristiti operator new. Primjer:

@���N�����2��>�V�����#�@���N����A�����N�����&�*BB14*�0W)�

Gornjim primjerom smo kreirali objekt moja_kosara klase Kosarica, a potom

smo u objekt moja_kosara dodali 5 artikala sifre 200342. Klase tako�er mogu

biti proširena verzija osnovne klase. To zna�i, da nova klasa ima sve

varijable i funkcije kao i osnovna klasa, ali ima i dodatne funkcije i varijable

Page 18: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

18

koje osnovna klasa nema. Ovo se radi uz pomo� klju�ne rije�i extends.

Primjer:

������������������ �������������������������������������

�����������V�����N�N������=�����V������M�

��@ �����#�

I������������ �N �����&@��)�M�

@����A� �����2@��#�

P�

�P����

����������������

Dakle, gornja klasa ima sve metode i varijable klase Kosarica, ali uvodi i

novu vlastitu varijablu $vlasnik i novu vlastitu metodu postavi_vlasnika.

Primjer:

@���� �N�������2��>�V�����N�N�����#�@���� �N������A����� �N �����&�O�����Q� ��)#�����@���� �N������A� �����#�@���� �N������A�����+�����&�*BB1*B�0*1)#�

Ne postoji mogu�nost višestrukog naslje�ivanja u PHP-u, a to zna�i da

proširena klasa može naslijediti svojstva i metode samo jedne osnovne

klase.

Page 19: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

19

6.Kontrolne strukture

6.1.IF

IF kontrolna struktura je jedna od najvažnijih u mnogim programskim

jezicima pa tako i u PHP-u. Sintaksa je vrlo sli�na C-u.

������������������ ��������������������������������������

������

��I�&@���@�)�M����������� ���������#�@��2�@#�P�

����

����������������

Ako imamo samo jednu naredbu za izvršiti u IF bloku, možemo

izostaviti viti�aste zagrade, iako zbog lakše �itljivosti programa to nije

preporu�ljivo.

6.2.ELSE

�esto bi htjeli izvršiti neku naredbu ili skup naredbi ako je uvjet

ispunjen, a drugi skup naredbi ako uvjet nije ispunjen. Upravo zbog toga je

ELSE kontrolna struktura.

������������������ ��������������������������������������

������

Page 20: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

20

�I�&@���@�)�M�

���������� �����#�P����M�

��������ET�L� ��������#�P�

���

����������������

� 6.3.ELSEIF

Elseif, kao sto i ime kaže je kombinacija if i else kontrolnih struktura.

Kao i else, elseif proširuje if strukturu tako da se može provjeriti više uvjeta,

ako prvi nije ispunjen, elseif za razliku od else �e se izvršiti samo ako se

njegov uvjet evaluira kao istinit.

������������������ ��������������������������������������

������

�I�&@���@�)�M�

���������� ��������#�P����I�&@�22�@�)�M�

�����������������#�P����M�

��������������������#�P�

���

����������������

6.4.WHILE

While petlje su najjednostavnije petlje u PHP-u. Tijelo petlje se

izvršava dok god je uvjet while-a ispunjen.

Page 21: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

21

������������������ ���������������������������������������

������

@��2�$#�>����&@���2�$B)�M�

������@�88#���� �������� ������������������P�

���

����������������

6.5.DO…WHILE

Do...while petlje su vrlo sli�ne while petljama, jedina je razlika sto �e

se do..while petlja sigurno izvesti jedan puta, neovisno o tome da li je uvjet

ispunjen ili nije.

������������������ ��������������������������������������

������

@��2�B#����M�

������@�#�P�>����&@��B)#�

���

����������������

U gornjem primjeru �e se petlja izvršiti bar jednom, odnosno ispisati �e "0"

iako uvjet u zagradama nije ispunjen.

Page 22: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

22

6.6.FOR

For petlje su najsloženije petlje u PHP-u. Sintaksa je sljede�a:

I���&=��$#�=��*#�=��1)�M�������$#�����������E#�P�

expr1 se bezuvjetno evaluira jedan put na po�etku petlje.

Na po�etku svake iteracije expr2 se evaluira. Ako se evaluira u TRUE, petlja

se nastavlja i naredbe unutar for bloka se izvršavaju. Ako se evaluira u

FALSE, petlja se prekida. Na kraju svake iteracije se evaluira expr3.

6.7.FOREACH

PHP 4 uklju�uje foreach strukturu. Ovo nam daje mogu�nost

jednostavnog iteriranja po svim stavkama polja. Primjer:

I����&���N=����������@ ��)��������

Petlja se vrti kroz polje array_expression i u svakoj iteraciji vrijednost

elementa polja stavlja u $value varijablu. Primjer:

I�����&@�����@ ��)�M�

�����R��F�@ ������(��#�

P�

� 6.8.BREAK

Break prekida izvo�enje trenutne for, while ili switch structure.

6.9.CONTINUE

Continue se koristi u petljama da se presko�i ostatak trenutne iteracije

petlje i da se izvo�enje nastavi na po�etku nove iteracije petlje.

Page 23: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

23

6.10.SWITCH

Switch je sli�an seriji if-ova na istom izrazu. U puno slu�ajeva, želimo

varijablu usporediti s puno vrijednosti i ovisno o odgovaraju�oj vrijednosti,

poduzeti odre�ene akcije. Upravo tu nam je switch najprakti�niji.

������������������ ��������������������������������������

������

�>�����&@�)�M�

���BF�

���������C����B�#�

���#�

���$F�

���������C����$�#�

���#�

���*F�

���������C����*�#�

���#�P�

���

����������������

Vrlo je bitno staviti break na kraju svakog case bloka, jer ako ne

stavimo break, izvode se svi blokovi koji slijede. Npr.da je $i=0 i da nema

breakova ispis bi bio sljede�i:

��C����B�

��C����$�

��C����*

Poseban slu�aj case-a je default. On hvata sve što ne odgovara prethodnim

uvjetima i mora biti zadnji od svih case izraza.

Page 24: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

24

������������������ ���������������������������������������

������

�>�����&@�)�M�

���BF�

���������C����B�#�

���#�

���$F�

���������C����$�#�

���#�

���*F�

���������C����*�#�

���#�

�I���F�

����������������C������B0�$����*�#�P�

���

����������������

7.Rad s bazama podataka (kratke upute)

7.1.Uvod

Pri izradi web aplikacija, naj�eš�e je potrebno povezati aplikaciju s

nekom bazom podataka. PHP podržava više vrsta baza, no ja �u samo

kratko prikazati kako najjednostavnije povezati aplikaciju s mySQL bazom

podataka.

Page 25: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

25

7.2.MySQL baze podataka

Dolje navedene funkcije omogu�avaju pristup MySQL serverima. Da bi

ove funkcije bile dostupne, potrebno je kompajlirati php sa mysql podrškom

koriste�i --with-mysql.

7.2.1.mysql_connect

Otvara vezu prema mySQL serveru.

���� ���C�N������� &J������� ������� JF����K� JF�������������K� J0� �������������J0�����������>���KKK)�

Defaultni parametri koji se koriste su: host:port = 'localhost:3306', username

= ime korisnika koji je vlasnik serverskog procesa i password ="". Primjer:

������������������ ���������������������������������������

������

@�����2����C�N�������&����������0��������0�������)�������&�7����������������)#�������&�7�������������I�����)#����C�N�����&@����)#�

���

����������������

Vrlo je bitno da se svaki otvoreni connection zatvori sa funkcijom

mysql_close. Ako to ne navedemo, veza �e se zatvoriti tek nakon izvršenog

cijelog PHP programa.

7.2.2.mysql_select_db

Nakon što smo otvorili vezu s mySQL serverom, potrebno je odabrati

bazu podataka s kojom �emo raditi na serveru.

Page 26: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

26

�������C�N����N���&�����������N���J0���������N�����I��K)

Vra�a cijeli broj ve�i od nule, ako je sve ok, ina�e vra�a nulu.

Mysql_select_db() postavlja trenutno aktivnu bazu na trenutno otvorenom

linku na server. Ako nije naveden link u pozivu funkcije, koristi se posljednji

otvoreni.

7.2.3.mysql_query

Sad kad smo se povezali na server i odabrali bazu s kojom �emo

raditi, potrebno je izvršiti prvi upit nad bazom. Za postavljanje upita treba

detaljnije poznavanje mySQL. Ovdje nije bitan mySQL, pa se preko toga

može pro�i.

�������C�NC����&�������C����J0���������N�����I��K)�

Funkcija vra�a nulu ako je došlo do greške, a ako je sve prošlo ok, onda

vra�a cijeli broj razli�it od nule. Evo primjera:

������������������ ��������������������������������������

������

@������2����C�NC����&�6L/L7-���N����3X'.���N����)�������&�T� ����C����)#�

���

����������������

U varijabli $result se nalaze svi rezultati našeg upita. Naj�eš�e se

$result varijabla obra�uje foreach petljom kako bi obavili potrebne radnje nad

svim rezultatima. Nakon završenog rada s $result-om, potrebno je osloboditi

resurs:

���C�NI�N�����&@�����)#

Page 27: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

27

Postoje još mnoge funkcije za rad s mySQL-om, tu su prikazane samo

osnovne. Slijedi još jedan konkretan primjer koji koristi sve navedene funkcije

i ispisuje podatke.

������������������ ��������������������������������������

������

@ ��2����C�N������&?��������?0?����?0?������?)#��I�&"@ �)���&�H�$�F�E�������������������� ��"�)#�

@���2����C�N����N��&?���N��?)#��I&"@��)���&��QX��H�$�F�E�������� ����������"��QX��)#��I�&���C�N����&))���&��QX������C�N����&)��F������C�N����&)���QX��)#�

@����2�6L/L7-�9�3X'.������$�Y�LXL�$2$�#�

@������N�����2����C�NC���&@����)#��I�&���C�N����&))���&��QX������C�N����&)��F������C�N����&)���QX��)#�

>���&@���2���C�NI���N���&@������N����))�M�

����@���J? � � ����?K0?�?�@���J?O���� ����?K#�

�����QX�#�

P�

���C�NI�N�����&@������N����)#����C�N����&@ �)#�

���

����������������

Dakle, prvo otvaramo vezu na server, potom odabiremo bazu na serveru, te

izvršavamo upit i rezultati se nalaze u $rezultat_upita. Potom idemo redak po

redak kroz $rezultat_upita i ispisujemo redak po redak iz tablice1 u bazi

moja_baza. Na kraju je potrebno osloboditi resurse koje smo zauzeli pri

dohvatu iz baze.

Page 28: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

28

8.Zaklju�ak

PHP programski jezik je jedan od najboljih izbora ako trebate izradu

web aplikacije ili nekog web-orijentiranog sustava. U�i se vrlo brzo,

jednostavan je za primjenu, jedini nedostatak je taj što ne postoje neki

ozbiljniji alati za izradu php stranica, barem ja ne znam za taj alat. Ina�e, sve

se svodi na notepad, a konkurencija (Microsoft ASP.NET) ima puno bolju

razvojnu okolinu. Naravno, još jedna od velikih prednosti PHP-a pred

konkurencijom je ta što je besplatan, a u kombinaciji s tako�er besplatnim

mySQL paketom može poslužiti za izradu vrlo mo�nih web aplikacija.

Page 29: PHP - FERpvprm.zesoi.fer.hr/2004-2005-web/studenti-rad/rkoncura/datoteke/... · 4.1.Osnove Varijable u PHP su oznaene dolar-znakom ($) iza ega slijedi ime varijable. Ime varijable

29

9.Literatura

1. http://www.w3schools.com/php/default.asp

2. Sveu�ilište u Zagrebu, Fakultet elektrotehnike i ra�unarstva (FER),

Zavod za automatiku i procesno ra�unarstvo (ZAPR), kolegij Otvoreno

ra�unarstvo, skripta za laboratorijske vježbe iz php-a.