PHP Programiranje-Maturalni Rad

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 48

TEHNIKA KOLA RUERA BOKOVIA GETALDIEVA 4, ZAGREB

ZAVRNI STRUNI RAD:

PHP programiranje

MENTOR: Braslav Erpai

UENIK: Jurica Galovi RAZRED: 4.H

U Zagrebu, 8. travnja 2011.

SADRAJ
1. UVOD..........................................................................................................2 2. PHP..............................................................................................................3
2.0 to je PHP? ...................................................................................................................3 2.1 Sintaksa PHP-a..............................................................................................................3 2.2 Rad s varijablama..........................................................................................................4 2.2.0 Tipovi varijabli............................................................................................4 2.3 Operatori u PHP-u.........................................................................................................4 2.3.0 Operatori za matematike operacije.................................................................5 2.3.1 Operatori za logike operacije.........................................................................6 2.3.2 Operatori za usporeivanje..............................................................................7 2.3.3 Kombinirani operatori......................................................................................8 2.4 Funkcije if i else............................................................................................................9 2.5 Arrays ( nizovi )...........................................................................................................11 2.5.0 Cjelobrojni niz................................................................................................12 2.5.1 Tekstualni niz..................................................................................................13 2.5.2 Multidimenzionalni niz...................................................................................14 2.6 Petlje u PHP-u.............................................................................................................14 2.7 Funkcije PHP-a...........................................................................................................17 2.8 Forme..........................................................................................................................19 2.8.0 $_GET metoda...............................................................................................19 2.8.1 $_POST metoda.............................................................................................20 2.9 Funkcija include( ).......................................................................................................21

3. TEHNIKE PHP PROGRAMIRANJA.......................................................22


3.0 Izbacivanje nepotrebnih razmaka iz stringa.................................................................22 3.1 Traenje stringa ili stringa unutar stringa.....................................................................23 3.2 Provjera postojanja znaka ili stringa unutar stringa......................................................24 3.3 Ispis odreenog dijela stringa.......................................................................................24 3.4 Manipuliranje HTML markupom.................................................................................25 3.5 Rezanje i lijepljenje stringa..........................................................................................26 3.5.0 explode( ) funkcija.......................................................................................26 3.5.1 implode( ) funkcija.......................................................................................27 3.6 PHP i Web serveri.........................................................................................................28

4. USPOREDBA PHP-a i C-a.......................................................................29


4.0 Razlike izmeu PHP-a i C-a........................................................................................29 4.1 Slinosti izmeu PHP-a i C-a......................................................................................30

5. IZRADA PROGRAMA U PHP PROGRAMSKOM JEZIKU.................32


5.0 Poetni dio stranice.......................................................................................................32 5.1 Poetna stranica............................................................................................................35 5.2 Primjer 1- brisanje bijelog prostor................................................................................36 5.3 Primjer 2- rastavljanje teksta funkcijom explode( ).....................................................37 5.4 Primjer 3- zamjena rijei..............................................................................................38 5.5 Primjer 4 ispitivanje parnosti pomou if( ) funkcije.................................................40 5.6 Primjer 5 primjer switch( ) petlje..............................................................................41 5.7 Primjer 6 lepeza boja pomou for( ) petlje...............................................................42 5.8 Stranica o meni............................................................................................................43 5.9 Zavrni dio stranice......................................................................................................45

6. SAETAK.................................................................................................46 7. LITERATURA..........................................................................................47

1. Uvod
Moda nam se svima ini da je Internet sa nama cijelu vjenost, iako se njegova popularizacija dogaa krajem 20. i u 21. stoljeu. Taj period je bio dovoljan za procvat i komercijalizaciju kako Interneta tako i Web stranica. Kada se spominje Internet kao izvor i medij za razmjenu informacija, prva stvar na koju pomislimo su Web stranice. One postoje od samog poetka stvaranja Interneta, ali do izraaja dolaze tek nakon stvaranja Web kataloga i poslije njih pametnih Web trailica. Prve Web stranice bazirale su se na HTML jeziku te su kao takve bile statine. Unutar HTML datoteke ispisan je HTML kod u kojem je definiran izgled stranice, njen sadraj, forma i stil. Glavni problem takvih stranica je nepraktinost njihovog odravanja upravo zbog pomijeanosti tih nesrodnih karakteristika u jednoj te istoj datoteci. Ovaj problem bio je gotovo nerjeiv kod velikih stranica na kojima se esto mijenja sadraj. Pronalazak i izmjena neke od linija koda bio je dug, mukotrpan i neekonomian posao, a mogle su ga obavljati samo iznimno kompetentne osobe koje su vrlo dobro poznavale HTML jezik. Sasvim je oito da su bile potrebne promjene, a one se ubrzo dogaaju u smislu razvoja novih tehnologija i naina njihove primjene. Tako se, na primjer, pojavljuje CSS jezik koji odvaja stil i izgled stranice od samog HTML koda, pojavljuje se Javascript jezik koji oivljava HTML elemente, ali se i sve ee same informacije uvaju na zasebnim mjestima i to u raznim bazama podataka. Moda se ini da je HTML kod zastario i da vie nije potreban u Internetskom svijetu, ali to je i danas glavni jezik zasluan za prikaz Web stranica. Svaka stranica koju danas gledamo u naem pregledniku, isto kao i prije, zapisana je u HTML-u. Jedina razlika je da su dananje stranice puno pametnije te nam nee uvijek poslati jedan te isti HTML kod ve e to napraviti na nain koji nama najvie odgovara ili vrlo esto, koji mi sami odluimo. Takve stranice temeljene na umjetnoj inteligenciji zovu se dinamike stranice, a jedna od vodeih tehnologija pri njihovoj izradi je PHP.

2. PHP
2.0 to je PHP?
PHP je kratica za PHP: Hypertext Preprocessor, drugim rijeima PHP je snaan alat za izradu dinamikih i interaktivnih Web stranica, a jednostavno ga je opisati kao programski jezik ugradiv u HTML kod. Sintaksa PHP programiranja slina je sintaksi poznatih programskih jezika kao to su C, C++ ili Java i zato je jednostavna za nauiti i zapamtiti. Za razliku od nekih drugih skriptnih jezika PHP je besplatan i svi ga mogu koristiti. Takoer je kompatibilan sa veinom Web servera, operativnih sustava i baza podataka te je zbog toga razloga postao jedan od najrairenijih skriptnih jezika za razvoj Web stranica. Cijela ideja dinamikih stranica je da se sakupe podaci od korisnika i da se sadraj prilagodi samom korisniku. Interakcija sa korisnikom postaje kljuna, a odvija se najee putem HTML formi gdje korisnik unosi traene podatke te ih alje PHP stranici na server. Kod takvih PHP stranica kod nije vidljiv korisniku ve je prethodno procesiran na serveru. Prilikom procesiranja, PHP parser odluuje koji e sadraj biti prikazan korisniku,a koji nee. Takav dinamian pristup odreivanja sadraja, gdje se glavni dio posla obavlja korisniku iza lea glavna je odlika serverskih skriptnih jezika poput PHP jezika. PHP datoteke sadre tekstualni dio, HTML tag-ove i skripte. Te datoteke se posjetitelju neke stranice vraaju kao obini HTML iako su nastavci za PHP datoteke ".php", ".php3" , ili ".phtml".

2.1 Sintaksa PHP-a


Skriptni blok PHP-a uvijek zapoinje sa <?php i uvijek zavrava sa ?> i moe biti smjeten na bilo kojoj poziciji u nekom dokumentu. Na nekim serverima skriptni blok PHP-a moe zapoeti sa <? i zavriti sa ?>, ali ti serveri takoer prihvaaju i prvi nain zapisa koji je standardna forma pa je preporuljivo koristiti taj zapis za maksimalnu kompatibilnost. No prije svega, kao znak za poetak koda svake stranice se koristi funkcija <html> i isto tako kao zavretak koda se koristi </html>. Kao i u C i C++ jeziku, u PHP-u se kao indikator za zavretak naredbe i za odvajanje jedne naredbe od druge stavlja ; (toka zarez). Za prikazivanje teksta posjetitelju se koriste dvije osnovne funkcije, a to su: echo( ) i print( ). Pomou te dvije funkcije je mogue ispisati niz znakova koji e onda biti prikazani u Web pregledniku. No, da bi se prikazale i izvrile funkcije koje su zapisane u PHP programskom jeziku, datoteka mora biti spremljena u slijedeem obliku: imedatoteke.php. Na primjer:
<?php echo "<p> Neki tekst. </p>" ; ?>

Ova linija koda e pregledniku poslati poetni i zavrni tag ( kljunu rije ) i tekst paragrafa ( "Neki tekst" ) dok e PHP tagovi i echo funkcija ostati skriveni.

2.2 Rad s varijablama


Varijable koristimo kako bi pohranili neku vrijednost u njih kao na primjer neki broj, neku rije i tome slino. Kad deklariramo varijablu ona se moe u skripti koristiti beskonaan broj puta. Varijable se u PHP-u ne moraju deklarirati prije nego to im se dodjeli neka vrijednost niti se mora rei kojeg je tipa podatak kojeg emo upisati u tu varijablu nego PHP automatski konvertira ( pretvara ) varijablu u tip podatka koji e se u tu varijablu upisati. No, ipak postoje pravila koja se trebaju slijediti pri deklariranju i koritenju varijabli u PHP-u. Prvo od vanijih pravila je to da sve varijable ( nevano o tipu varijable ) u PHP-u poinju sa $ pa je prema tome toan nain deklariranja varijable sljedei: $ime_varijable = vrijednost; Bez znaka $ deklaracije e biti bezuspjena. Primjer za deklariranje string i brojane varijable:
<?php $naziv = "Pada kia" ; $broj = 5 ; ?>

Takoer, postoje pravila za davanje imena varijablama. Po tim pravilima ime varijable mora poeti sa slovom ili sa znakom "_" . Ime varijable moe sadravati slova engleske abecede ( A-Z, a-z ), brojeve ( 0-9 ) i donju povlaku "_", zatim, u imenu ne bi trebao biti niti jedan razmak i na kraju, ako ime sadrava dvije ili vie rijei, te se rijei odvajaju sa donjom povlakom ( $veliki_broj ) ili sa drugim slovom velikim ( $velikiBroj ).

2.2.0 Tipovi varijabli


PHP sadri osam osnovnih tipova varijabli. Prvi tip jest integer varijabla u koju se spremaju cjelobrojni brojevi ( pozitivni i negativni ), drugi tip jest float ili drugim rijeima double, u takvu vrstu varijable se pohranjuju decimalni brojevi. Trei tip varijabli u PHP-u jest boolean tip koji ima dva stanja ( True i False ), sljedei tip je string varijabla koja slui za pohranjivanje tekstualnih podataka, peti tip varijabli su arrays varijable, to jest varijable koje sadre vie podataka u sebi. Postoje i varijable objects tipa, i na kraju resources varijable. Posljednji tip varijabli je specijalna varijabla NULL koja u sebi ne sadri nita. etiri su skalarna tipa varijabli i to su: integer, float ( double ), boolean i string. Dvije su vrste spojnih varijabli i to su arrays i objects. I na kraju, samo je NULL tip poseban tip varijabli u PHP-u.

2.3 Operatori u PHP-u


Postoje etiri osnovne skupine operatora, a to su: operatori za matematike operacije, operatori za logike operacije, operatori za usporeivanje i kombinirani operatori ( sadre vie operacije u sebi ). No nema smisla koristiti operatore ako u se u varijablama ne nalaze nikakve vrijednosti. U skladu s tom tvrdnjom varijablama je

potrebno dati neku vrijednost prije nego to se one koriste u daljnjem kodu. To obavljamo sa znakom " = " na sljedei nain :
<?php $varijabla = 3 ; $druga_varijabla = $varijabla ; ?>

2.3.0 Operatori za matematike operacije


Prva grupa operatora su operatori za matematike operacije. To su operatori za zbrajanje, oduzimanje, mnoenje, dijeljenje, raunanje ostatka dijeljenja, inkrementiranje ( poveanje vrijednosti varijable za jedan ) i dekrementiraje ( smanjenje vrijednosti varijable za jedan ). Napravio sam tablicu za svaku od vrsta operatora kako bih pokazao njihovo djelovanje, izgled i naziv na primjerima. Prva tablica prikazuje operatore za matematike operacije. Kao to sam rekao ti operatori obavljaju operacije zbrajanja, oduzimanja, dijeljenja, mnoenja, raunanja ostatka dijeljenja, inkrementiranja i dekrementiranja.

OPERATOR
+

OPERACIJA
ZBRAJANJE

PRIMJER
$x = 4 $x + 3 $x = 6 $x 2 $x = 3 $x * 5 $x = 10 $x / 2 $x = 5 $x / 2 $x = 10 $x++ $x = 10 $x-$x = 5 $x / 2 $x=10 $x /5 5

REZULTAT
7

ODUZIMANJE

MNOENJE

15

DIJELJENJE

2.5

OSTATAK DIJELJENJA

++

INKREMENTIRANJE

11

--

DEKREMENTIRANJE

2.3.1 Operatori za logike operacije


Sljedea tablica prikazuje operatore za logike operacije. Ti operatori obuhvaaju logike operacije I, ILI i NE. Rezultati tih operacija nam ovise o uvjetima koje smo postavili, pa prema tome vraaju istinu ili la. Za logike operacije I i ILI postavljaju se minimalno dva uvjeta. Kod logike operacije I moraju biti zadovoljeni svi uvjeti kako bi nam se vratila istina ( u suprotnom se vraa la ), a kod logike operacije ILI mora biti zadovoljen bar jedan od postavljenih uvjeta kako bi nam se vratila istina ( u suprotnom se vraa la ). Kod logike operacije NE postavlja se samo jedan uvjet i ako je on zadovoljen vraa se la ( suprotnost od pravog rezultata ), odnosno rezultat se invertira. Ovo objanjenje prikazuje sljedea tablica logikih operatora koja se nalazi ispod teksta.

OPERATOR

OPERACIJA

PRIMJER
$x = 3 $y = 5 ( $x < 5 && $y > 2 )

REZULTAT

&&

I ( and )

uvjeti su zadovoljeni, vraa se istina

ILI ( or ) ||

$x = 7 $y = 4 ( $x = = 5 | | $y = = 5 ) $x = 6 $y = 3 ! ( $x = = $y )

uvjeti nisu zadovoljeni, vraa se neistina

NE ( not )

uvjet nije zadovoljen, rezultat je la, ali operacija NE ju invertira i daje rezultat istina

2.3.2 Operatori za usporeivanje


Trea vrsta operatora su operatori za usporeivanje koji se koriste za usporeivanje raznih vrijednosti. Koriste se kako bi se usporedile vrijednosti koje se nalaze u nekim varijablama pa tako moemo ispitati dali je vrijednost u nekoj varijabli vea, manja ili ne/jednaka nekoj drugoj vrijednosti. Iako vrijednosti ne moraju biti upisane u neke varijable kako bi se mogle ispitivati, veinom se ispituju vrijednosti koje se nalaze unutar nekih varijabli. Operatori za usporeivanje nam vraaju logike vrijednosti kao i u prolom primjeru za logike operatore u obliku 1 za istinitu tvrdnju i 0 za lanu tvrdnju. Zamislimo da je u varijabli $x upisana vrijednost 5 te da tu varijablu usporeujemo s vrijednostima kako je prikazano u sljedeoj tablici. Sljedea tablica prikazuje stanja, oznake, primjere i djelovanje operatora za usporeivanje.

OPERATOR
==

OPERACIJA
JEDNAKO

PRIMJER
$x = = 8

REZULTAT
uvjet nije zadovoljen, rezultat je la uvjet je zadovoljen, rezultat je istina uvjet je zadovoljen, rezultat je istina uvjet je zadovoljen, rezultat je istina uvjet nije zadovoljen, rezultat je la uvjet nije zadovoljen, rezultat je la uvjet je zadovoljen, rezultat je istina

!=

RAZLIITO

$x ! = 8

<>

RAZLIITO

$x < > 5

>

VEE OD

$x > 3

<

MANJE OD

$x < 3

>=

VEE ILI JEDNAKO OD MANJE ILI JEDNAKO OD

$x > = 8

<=

$x < = 8

2.3.3 Kombinirani operatori


Posljednja vrsta operatora u PHP-u su kombinirani operatori koji u sebi sadre vie operacija, drugim rijeima to su skraenice za neke standardne operacije kao zbrajanje/oduzimanje neke vrijednosti sa samom varijablom, ili mnoenje neke varijable sa nekom vrijednosti i druge. Sa posljednjom tablicom operatora u prikazati djelovanje posljednje vrste operatora, a to su kombinirani operatori. ISTA OPERACIJA KAO U PRIMJERU
x=y

OPERATOR
=

PRIMJER
x=y

+=

x+ = y

x=x+y

-=

x- = y

x=x-y

*=

x*=y

x=x*y

/=

x/=y

x=x/y

.=

x. = y

x = x.y

%=

x%=y

x=x%y

Uoimo da su operatori u PHP-u praktiki isti kao i u C programskom jeziku, jedina je razlika to u C programskom jeziku ne postoje kombinirani operatori. Operatori se u PHP-u, kao i u drugim programskim jezicima koriste vrlo esto za ispitivanje stanja neke varijable, pa u skladu sa tim e i neki uvjeti trebati biti ispunjeni kako bi se odreeni odsjeak koda trebao izvriti. Tu u priu dolaze kao i u C programskom jeziku uvjetna izvravanja, a za ispitivanje uvjeta se koriste funkcije if( ) i else( ).

2.4 Funkcije if i else


esto, dok piemo kod u nekom od programskih jezika nam je potrebno izvravanje odreenog programskog isjeka samo u odreenim situacijama. Kad nam je to potrebno onda koristimo funkcije if( ) i else( ). U kodu koristimo tzv. uvjetne funkcije, u koje spadaju i if( ) i else( ) funkcije, kada nam je potrebno postaviti neki uvjet pomou kojega emo ( ako je taj uvjet ispunjen ) izvriti odreeni dio koda, u suprotnom ( ako taj uvjet nije ispunjen ) taj e se dio koda preskoiti. Pa tako u PHP programskom jeziku koristimo slijedee: 1) if( ) - koristimo ga kada trebamo izvriti dio koda samo ako je uvjet ispunjen ( istinit ) 2) if( )...else - ovakav oblik uvjetnog izvravanja koristimo kada imamo jedan upit i dva rjeenja za taj upit, jedno rjeenje se koristi ako je uvjet ispunjen i to rjeenje je zapisano u if dijelu ( onda se ne koristi drugo rjeenje zapisano u else dijelu ), a ako uvjet nije ispunjen onda koristimo drugo ( else ) rjeenje 3) if( )...elseif( )...else - ovo koristimo kada imamo dva upita, ako je toan prvi upit onda se izvrava kod zapisan u if funkciji, ako je toan drugi upit ( koji se nalazi u elseif funkciji) onda se on izvrava, a ako nijedan od prva dva upita nije toan onda se izvrava trea solucija zapisana u else funkciji 4) switch( ) - koristimo ju tako da usporeujemo vrijednost neke varijable sa vie navedenih upita ( sluajeva ) i ako nijedan od upita ne daje istinu tada se koristi napisani default Funkcija if( ) se koristi kada elimo izvriti dio koda ako je ispunjen neki uvjet. Tih uvjeta moe biti i vie, u tom sluaju koristimo logike operatore I i ILI kako bi to naznaili. Ako koristimo operator I ( and ) tada svaki navedeni uvjet mora biti ispunjen, a ukoliko koristimo operator ILI ( or ) tada bar jedan od navedenih uvjeta mora biti ispunjen kako bi se izvrio dio koda napisan u funkciji if( ). Unutar zagrada funkcije if se unosi uvjet koji treba biti ispunjen kako bi se programski odjseak izvrio i za taj se uvjet koriste operatori za usporeivanje. Unutar koda koji e biti izvren ako je uvjet zadovoljen moe biti i vie od jedne naredbe pa se u tom sluaju naredbe unutar if( ) funkcije kao i u C programskom jeziku moraju oznaiti sa vitiastim zagradama { }, ali nije greka ako se zagrade stave iako je zadana samo jedna naredba. Sintaksa je sljedea:
<?php if ( uvjet ) { kod koji e se izvriti ako je uvjet ispunjen ; } ?>

Primjer zadavanja naredbe pomou if funkcije:


<?php $varijabla = 3 ; if( $varijabla == 3 ) { echo "<p> Neki tekst. </p>" ; } ?>

Funkciju if( )...else koristimo kada elimo da se dio koda izvri samo ako je neki zadani uvjet ispunjen, a u suprotnom elimo izvriti dio koda ako taj uvjet nije ispunjen. Tih uvjeta, kao i u if( ) funkciji moe biti vie i za njihovo povezivanje koristimo logike operatore I i ILI. Sva pravila vrijede kao i kod funkcije if( ). Ako uvjet unutar if( ) funkcije nije ispunjen, tada se kod unutar if( ) funkcije preskae i izvrava se kod unutar else funkcije, u suprotnom se izvrava kod unutar if( ) funkcije, a preskae se kod unutar else funkcije kao i u C programskom jeziku. Sintaksa je sljedea:
<?php if ( uvjet ) { kod koji e se izvriti ako je uvjet ispunjen ; } else { kod koji e se izvriti ako uvjet nije ispunjen ; } ?>

Primjer zadavanja naredbe pomou if( )...else funkcije:


<?php $varijabla = 5 ; if ( $varijabla == 5 ) { echo "<p> Neki tekst. </p>" ; } else { echo "<p> Neki drugi tekst. </p>" ; } ?>

Funkciju if( )...elseif( )...else koristimo kada trebamo odabrati jedan od vie dijelova koda koji e se izvriti. U if( ) i elseif( ) dio upisujemo uvjete koji trebaju biti izvreni, ako niti jedan od uvjeta nije ispunjen izvriti e se else dio. Sintaksa je sljedea:
<?php if ( uvjet ) { kod koji e se izvriti ako je prvi uvjet ispunjen ; } elseif ( uvjet ) { kod koji e se izvriti ako je drugi uvjet ispunjen ; } else { kod koji e se izvriti ako nijedan uvjet nije ispunjen ; } ?>

10

Primjer zadavanja naredbe pomou if( )...elseif( )...else funkcije:


<?php $dan = 5; if ( $dan == 5 ) { echo "<p> Danas je peti dan. </p>" ; } elseif ( $dan == 6 ) { echo "<p> Danas je esti dan. </p>" ; } else { echo "<p> Danas nije niti peti, niti esti dan. </p>" ; } ; ?>

Switch( ) funkciju koristimo kada zadamo vie upita, odnosno usporeujemo neku zadanu varijablu sa vie vrijednosti i ako je ona jednaka nekoj od tih vrijednosti izvravamo zadani kod, a ako nije jednaka nijednoj od tih vrijednosti izvrava se neki default koji smo zadali. Vano je da nakon svakog sluaja upiemo brake jer u sluaju da je jedan od prijanjih sluaja bio toan on e se ispisati,ali ako brake nije upisan daljnji upiti e se izvravati. Sintaksa je sljedea:
<?php $n = 3 ; switch ( $n ) { case 1 : echo "<p> Broj brake ; case 2 : echo "<p> Broj brake ; case 3 : echo "<p> Broj brake ; default : echo "<p> Broj } ?>

je jednak 1. </p>" ;

je jednak 2. </p>" ;

je jednak 3. </p>" ;

se ne nalazi u intervalu od 1 do 3. </p>" ;

2.5 Arrays ( nizovi )


Array, ili na hrvatskom jeziku NIZ jest posebna varijabla u koju moemo pohraniti vie slinih vrijednosti unutar jedne varijable pomou indeksiranja. Postoje tri razliita tipa arraya: cjelobrojni ( numeric ), tekstualni ( associative) i multidimenzionalni.

11

2.5.1 Cjelobrojni niz


Cjelobrojni niz pohranjuje svaki element niza pomou brojanog indeksa. Sintaksa je takva da uz klasino dodjeljivanje vrijednosti varijabli nakon znaka jednakosti upiemo array i nakon toga otvorimo zagradu u koju izmeu apostrofa upisujemo vrijednosti koje elimo upisati u svaku pojedinanu varijablu odvojene zarezima. Indeksi pojedinanim varijablama se automatski pridodaju i poinju od nule. Primjer zadavanja niza automatskim dodjeljivanjem indeksa se nalazi ispod teksta:
<?php $niz_ime = array ( "Ivan" , "Marko" , "Matea" , "Marija" ) ; ?>

Postoji i mogunost u kojoj vlastoruno pridodajemo indekse. Vrijede ista pravila kao i kod automatskog dodjeljivanja, ali za svaku varijablu unutar niza potrebno je posebno, unutar vitiastih zagrada upisati indeks te varijable. Primjer zadavanja niza vlastorunim dodjeljivanjem indeksa:
<?php $niz_ime[0] $niz_ime[1] $niz_ime[2] $niz_ime[3] ?>

= = = =

"Ivan" ; "Marko" ; "Matea" ; "Marija" ;

Primjer primjene cjelobrojnog niza sa vlastorunim dodjeljivanjem indeksa u kojem ispisujemo imena koja poinju na slovo "M" izgleda ovako:
<?php $niz_ime[0] = "Ivan" ; $niz_ime[1] = "Marko" ; $niz_ime[2] = "Matea" ; $niz_ime[3] = "Marija" ; echo "<p> $niz_ime[1] . "," . $niz_ime[2] . " i " . $niz_ime[3] . " poinju na M </p>" ; ?>

Ovaj programski odsjeak e nam na ekranu ispisati slijedee: "Marko,Matea i Marija poinju na M

12

2.5.2 Tekstualni niz


Tekstualni niz je vrlo slian cjelobrojnom nizu po nainu rada, ali je razliit po indeksiranju. Naime, tekstualnom nizu indeks je u obliku slova ( string ) tako da se moe uspostaviti bolja asocijacija izmeu indeksa i vrijednosti ( povezivanje brojeva sa slovima). Sintaksa je vrlo slina cjelobrojnom nizu, glavna je razlika ta to nema automatskog indeksiranja pa se indeksira vlastoruno. Postoje dva naina indeksiranja u tekstualnom nizu. Prvi nain indeksiranja se izvodi tako da unutar zagrada pod navodnike upisujemo nazive ( string ), a zatim pomou znaka = > unosimo vrijednost u eljenu varijablu. Sintaksa je sljedea:
<?php $starost = array ( "Ivor" => 28 , "Ante" => 29 , "Kreimir" => 19 ) ; ?>

Drugi nain indeksiranja se izvodi tako da svaku varijablu unutar niza posebno indeksiramo. To jest, za svaku varijablu unutar niza potrebno je posebno, unutar vitiastih zagrada i izmeu jednostrukih navodnika napisati indeks te varijable. Vrijednost varijablama niza dodjeljuje se tako da se nakon indeksiranja varijabli upisuje znak jednakosti iza kojeg slijedi vrijednost koja e biti upisana u tu varijablu i koja se nalazi izmeu navodnih znakova ( dvostrukih ). Primjer ispod teksta prikazuje indeksiranje i dodjeljivanje vrijednosti varijablama niza sa istim djelovanjem kao i u prvom primjeru, ali na drugi nain indeksiranja.
<?php $starost['Ivor'] = "28" ; $starost['Ante'] = "29" ; $starost['Kreimir'] = "19" ; ?>

Odsjeak koda ispod teksta prikazuje kako bi dodijelili vrijednosti i indeksirali varijable unutar niza $starost te na kraju ispisali vrijednost koja se nalazi u varijabli $starost[ 'Ivor' ]:
<?php $starost['Ivor'] = "28" ; $starost['Ante'] = "29" ; $starost['Kreimir'] = "19" ; echo "<p> Ivor ima " . $starost['Ivor'] . " godina. </p>" ; ?>

13

Rezultat ovog programskom odsjeka je sljedei: " Ivor ima 28 godina. "

Ivor ima 28 godina.

2.5.3 Multidimenzionalni niz


U multidimenzionalnom nizu svaki element glavnog niza moe biti sam po sebi jo jedan niz. Svaki element tog manjeg niza moe sam po sebi biti niz, i tako dalje. Vrijednostima multidimenzionalnog niza pristupa se sa viestrukim indeksima, to jest svakom elementu glavnog niza pristupamo tako da indeksiramo taj element i elemente koje on sadri u sebi. Sam nain indeksiranja moemo birati, kao i u tekstualnom i cjelobrojnom nizu. Moemo i kombinirati naine indeksiranja ( automatski ili vlastoruni nain ), ali moemo i koristiti oba naina indeksiranja. Vrijednosti varijablama unutar niza/nizova dodjeljujemo kao i u prijanjim vrstama nizova. Primjer izrade multidimenzionalnog niza se nalazi ispod teksta:
<?php $kompanije = array ( "agrokor"=>array("Konzum","Ledo","Jamnica"), "zg_holding"=>array("ZET","Cistoca") ); ?>

U ovom programskom odsjeku se unutar niza $kompanije jo nalaze dva niza,a to su agrokor i zg_holding, te se unutar niza agrokor nalaze varijable Konzum, Ledo, Jamnica, a unutar niza zg_holding se nalaze varijable ZET, Cistoca.

2.6 Petlje u PHP-u


elimo li napisati dio koda koji e se u programu stalno ponavljati. Ako nam je to potrebno, onda umjesto da isti ili slian red piemo puno put koristimo petlje. Petlje nam omoguuju da se odreeni odsjeak koda izvrava potreban broj puta. PHP podrava slijedee etiri vrste petlji: while( ), for( ), do...while( ), foreach( ). While( ) petlja nam omoguava izvravanje odreenog dijela koda sve dok je neki uvjet ispunjen. U trenutku kad taj uvjet vie nije ispunjen taj dio koda se preskae i prestaje se izvravati. Uvjet se ispituje pomou operatora za usporeivanje. Sintaksa je takva da nakon while-a u, zagrade upisujemo uvjet koji treba biti ispunjen i upisujemo naredbe unutar vitiastih zagrada while-a. Vano je da promijenimo stanje varijable koja

14

se ispituje u uvjetu ( poveamo ili smanjimo ) jer e u suprotnom biti napisana beskonana petlja. Sintaksa izgleda ovako:
<?php while ( uvjet ) { kod koji e se izvriti sve dok je uvjet ispunjen ; promjena stanja varijable koja se ispituje ; } ?>

While petlja se moe koristiti u brojnim sluajevima, ali njezin princip je uvijek isti. Ispod teksta se nalazi primjer primjene while petlje:
<?php $var = 5 ; while ( $var <= 5 ) { echo "<p> Broj " . $var . " je manji od 5. </p>" ; $var = var + 1 ; } ?>

For( ) petlju koristimo kada tono odreeni dio koda moramo izvriti tono odreeni broj puta. Varijablu koju ispitujemo unutar for petlje najee nazivamo $i. Kao i u while( ) petlji potrebno je zadati neki uvjet koji mora biti ispunjen da bi se petlja izvravala, za definiranje tog uvjeta koristimo operatore za usporeivanje. Petlja se sa stoji od tri dijela i to su: postavljanje varijable u poetnu vrijednost, ispitivanje uvjeta, mijenjanje vrijednosti varijable ( inkrementiranje ili dekrementiranje ). Svaki od ta tri dijela su odvojeni sa tokom zarez. Sintaksa for petlje je sljedea:
<?php for ( poetna vrijednosti;uvjet;inkrementiranje/dekrementiranje ) { kod koji e se izvravati dok je uvjet ispunjen ; } ?>

Primjer programskog odsjeka u kojem se koristi for petlja se nalazi ispod teksta:
<?php for ( $i = 1 ; $i <= 10 ; $i++ ) { echo "<p> Broj i jednak je: </p> " . $i . ; } ?>

15

Do...while( ) petlja e izvriti zadani kod jedanput, a zatim e provjeriti je li uvjet koji je zadan ispunjen, pa ako jest e izvriti opet taj zadani kod, a ako nije e ga preskoiti i izvravati daljnji kod programa. Zadani kod unutar do dijela e se izvravati sve dok je uvjet ispunjen. Vano je naglasiti da u do...while( ) petlji nakon do ne ide toka zarez, a nakon while( ) obavezno ide! Sintaksa je sljedea :
<?php do { kod koji e se izvriti ; } while ( uvjet ) ; ?>

Primjer koritenja do...while( ) petlje je sljedei:


<?php $var = 1 ; do { echo "<p> Vrijednost varijable je: " . $var . " dakle, uvjet je ispunjen! </p>" ; $var++ ; } while ( $var < 5 ) ; ?>

Foreach( ) se koristi za petlje sa nizovima ( array ). Foreach petlja prolazi kroz niz i za svaki skok koji napravi se koristi vrijednost elementa niza na kojoj se u tom trenutku nalazi foreach petlja i nakon tog skoka vrijednost petlje se podie za jedan, to jest petlja skae na sljedei element niza koji e biti obraen pri slijedeem skoku foreach petlje. Sintaksa je takva da unutar zagrada foreach petlje upisujemo naziv niza as $value i to se prikazuje na sljedei nain:
<?php foreach ( varijabla as $value ) { kod koji e se izvriti ; } ?>

16

Primjer zadavanja naredbi pomou foreach( ) petlje je sljedei:


<?php $niz = array ( 1 , 2 , 3 , 4 , 5 ) ; foreach ( $niz as $value ) { echo "<p> Vrijednost niza iznosi $value . </p>" ; } ?>

Nakon pokretanja ovo programskog odsjeka na zaslonu e nam se prikazati slijedee:


Vrijednost Vrijednost Vrijednost Vrijednost Vrijednost niza niza niza niza niza iznosi iznosi iznosi iznosi iznosi 1 2 3 4 5 . . . . .

2.7 Funkcije PHP-a


Funkcija je u biti ime koje zadajemo skupini naredbi koju moemo pozvati bilo gdje unutar koda. Ime funkcije ne smije poeti sa brojem,a mora poeti sa donjom povlakom ( _ ) ili sa bilo kojim slovom ( velikim ili malim ). Pomou funkcija moemo utedjeti puno na vremenu i pisanju, te uiniti kod itljivijim i razumljivijim kako nama tako i nekome tko ga prvi put prouava. Preporuljivo je funkciji zadati ime koje je asocijativno onome to ta funkcija radi. Naredbe funkcije e se izvriti u trenutku kad funkciju pozovemo. Postoje tri osnovna pravila u sintaksi funkcije i to su: 1) funkciju uvijek moramo zapoeti sa kljunom rijei function 2) naredbe funkcije zapisujemo unutar vitiastih zagrada { } Sintaksa koju koristimo kod funkcija je sljedea:
<?php function _ImeFunkcije( ) { kod koji e funkcija izvravati ; } glavni kod ( unutar kojeg se nalazi poziv funkcije ) ; ?>

17

Primjer jednostavne funkcije koja e ispisati zadani tekst se nalazi ispod teksta:
<?php function upit ( ) { echo "<p> Svia li vam se ova stranica ? </p>" ; } upit () ; ?>

Ovaj program e na zaslonu korisnika prikazati slijedee:

Svia li vam se ova stranica ?

Kako bi funkciju uinili korisnijom i funkcionalnijom moemo joj dodati neke parametre. Parametri su odreeni unutar zagrada ( ) funkcije. Parametri slue za slanje informacija funkciji koje e ona koristiti i obraivati. Parametri izgledaju kao i obine varijable PHP-a. Pomou parametara moemo funkciju uiniti mnogo korisnijom i tako moemo funkciju vie puta koristiti u kodu. Kako bi u parametar, koji smo zadali unutar zagrada funkcije, neto upisali potrebno je u glavnom kodu pozvati funkciju i unutar zagrada poziva funkcije napisati koju vrijednost ili varijablu aljemo funkciji da ju ona obradi. To djelovanje funkcije sam objasnio na slijedeem primjeru:
<?php function osobe( &ime , $godine ) { echo "Pozdrav " . $ime . ". Ti ima " . $godine . " godina. <br/> " ; } osobe ( "Mario" , "18" ) ; osobe ( "Darko" , "19" ) ; osobe ( "Ana" , " 17" ) ; osobe ( "Slavica" , "45" ) ; ?>

Upotrebom ove funkcije emo dobiti ovakav prikaz na zaslonu:


Pozdrav Pozdrav Pozdrav Pozdrav Mario. Ti ima 18 godina. Darko. Ti ima 19 godina. Ana. Ti ima 17 godina. Slavica. Ti ima 45 godina.

Vana je napomena da pri upotrebi slova izvan engleske abecede, kao to je u ovom sluaju slovo datoteku moramo spremiti kao UTF-8 tip datoteke.

18

2.8 Forme
esto se u PHP-u koristi aplikacija koja u HTML obliku prikuplja podatke od korisnika, a nakon toga koristi PHP oblik kojim obrauje te prikupljene podatke. Ta aplikacija se naziva forma, iako u sutini ona nije aplikacija, ve vrsta koda koja ima slinosti sa aplikacijom. U formama koristimo $_GET i $_POST funkcije kako bi dobili eljenih ( traenih ) podataka od korisnika koji e se dalje obraivati. Korisno je znati da svaki element ( podatak ) HTML forme je dostupan i PHP formi. Kako bi znali raditi sa formama moramo znati raditi sa funkcijama $_GET i $_POST. Analogno tome, postoje dvije metode prikupljanja podataka od korisnika te su te dvije metode i dvije metode pisanja formi.

2.8.0 $_GET metoda


Koristi se kako bi prikupili informacije od korisnika metodom get . Podaci poslani sa get formom su vidljivi svima ( biti e prikazani na adresnoj traci Web preglednika unutar URL-a ) i postoji odreena maksimalna koliina podataka koji se mogu poslati tom metodom. Zbog toga to su podaci koji se alju vidljivi svima nije preporuljivo koristiti ovu metodu pri slanju zaporki i osobnih podataka. Meutim dobra strana ovakvog slanja podataka je ta to moemo spremiti kraticu odreene Web stranice ( bookmark ) unutar naih Web pretraivaa. Pri koritenju $_GET funkcije potrebno je napisati HTML dio koda i PHP dio koda koji e obraditi dobivene informacije. Primjer bi izgledao ovako: HTML dio:
<html> <body> <form action= "boraviste.php" method="get"> Ime: <input type="text" name="naziv" /> Grad: <input type="text" name="gradic" /> <input type="submit" /> </form> </html> </body>

19

PHP dio:
Dobrodoao <?php echo $_GET["naziv"] ; ?>.<br /> Mjesto boravka ti je: <?php echo $_GET["gradic"] ; ?>

Nakon pokretanja ovoga koda na ekranu e nam se pojaviti prostor za upis podataka. Bit e nam ponuen upis imena i grada. Nakon to ih upiemo (npr. Ivan; Zagreb ) i potvrdimo podatke tako da stisnemo Predaj upit, na ekranu e biti ispisano slijedee:

Dobrodoao Ivan. Mjesto boravka ti je: Zagreb.

2.8.1 $_POST metoda


Koristi se kako bi prikupili informacije od korisnika metodom post . Podaci koji se alju ovom metodom su nevidljivi drugim korisnicima i ne postoji ogranienje koliine podataka koju aljemo ovom metodom, odnosno koliina podataka poslana ovom metodom nije ograniena. Meutim maksimalna mogua koliina podataka koja se moe slati ovom metodom jest 8 Mb, ali ta se koliina moe mijenjati pa je analogno tome koliina podataka neograniena. Sintaksa ove metode je gotovo ista kao i kod get metode. Kljuna je razlika ta to u ovoj metodi pod method= upisujemo post umjesto get i to nitko ne moe znati koje smo podatke poslali jer oni nisu upisani u URL tijekom slanja. Ovu je metodu preporuljivo koristiti pri situacijama u kojima aljemo privatne ili nama vane podatke kako ih drugi ne bi imali mogunosti vidjeti. Kao i kod koritenja $_GET funkcije, pri koritenju $_POST funkcije postoje dva dijela koda i to su HTML dio i PHP dio. Primjer se nalazi ispod teksta: HTML dio:
<html> <body> <form action="boraviste.php" method="post"> Ime: <input type="text" name="naziv" /> Grad: <input type="text" name="gradic" /> <input type="submit" /> </form> </html> </body>

20

PHP dio:
Dobrodoao <?php echo $_POST["naziv"] ; ?>.<br /> Mjesto boravka ti je: <?php echo $_POST["gradic"] ; ?>

U PHP dijelu je potrebno promijeniti $_GET vrstu niza u $_POST vrstu niza kako bi kod funkcionirao. Nakon pokretanja ovoga koda na ekranu e nam se pojaviti prostor za upis podataka. Bit e nam ponuen upis imena i grada. Nakon to ih upiemo (npr. Ivan; Zagreb ) i potvrdimo podatke tako da stisnemo Predaj upit, na ekranu e biti ispisano slijedee:
Dobrodoao Ivan. Mjesto boravka ti je: Zagreb.

2.9 Funkcija include( )


Pomou include( ) funkcije moemo umetnuti sadraj jedne PHP datoteke u drugu PHP datoteku bez prepisivanja cijelog koda i bez izvravanja glavnog dijela koda. Ova funkcija je vrlo korisna i funkcionalna. Zamislimo da imamo velik broj linkova koji koriste isti dio koda. Taj dio koda moemo napisati kao jednu PHP datoteku i pomou include( ) naredbe koristiti taj kod u svakom linku bez prepisivanja cijelog koda. Kada bi neto htjeli promijeniti u tom kodu, onda samo promijenimo u tom jednom glavnom dijelu. Ako se dogodi greka, include( ) funkcija javlja greku i nastavlja sa daljnjim radom skripte pa je i pouzdana jer ne zaustavlja rad cijele skripte nego preskae naredbe unutar include( ) funkcije i nastavlja sa radom izvan nje. Include( ) se sastoji od dva dijela. Prvi dio je kod koji je napisan u samoj include( ) funkciji. Drugi dio je naredba sa kojom taj kod unutar include( ) funkcije umetnemo u eljenu PHP datoteku. Dakle, zamislimo da smo unutar neke PHP datoteke upisali nekakav kod i da smo tu datoteku nazvali matura.php i da ju elimo umetnuti u drugu PHP datoteku. To bismo napravili na sljedei nain:
<?php include ( " matura.php " ) ; echo "<p> Dobar dan! </p> " ; ?>

Zapisani kod e prvo izvriti naredbe koda datoteke matura.php, a zatim e ispisati: Dobar dan! jer je to u ovom sluaju jedina naredba unutar skripte u koju je umetnuta datoteka matura.php. Nije bitno to je zapisano u datoteci matura.php, dakle skripte se odvojeno izvravaju, ali unutar iste datoteke. Moemo rei da je to neka vrsta programa unutar programa kako bi lake shvatili o emu se radi i kako funkcionira include()funkcija.

21

3. TEHNIKE PHP PROGRAMIRANJA


Svatko tko ima bar osnovno znanje o PHP programiranju zna da su string varijable, i string openito najei tip podataka koji se koristi u PHP-u. Iz te injenice proizlazi zakljuak da je vano znati koristiti i manipulirati sa takvim tipom podataka. Na sreu programera, u PHP-u se nalaze ve gotove funkcije koje nam omoguavaju lake snalaenje unutar koda i manipulacija istog.

3.0 Izbacivanje nepotrebnih razmaka iz stringa


U nekim sluajevima, pri radu sa string podacima, podaci u sebi sadre nepotrebne razmake. Postoji vie vrsta razmaka u PHP-u, ali ova etiri su osnova: 1) razmaci od jednog mjesta 2) razmaci od vie mjesta ( u PHP-u \t ) 3) znak za prijelaz u novi red ( u PHP-u \n ) 4) nulti razmak ili NULL ( u PHP-u \0 ) Korisno je za znati da se ti razmaci ne vide u HTML pogledu dokumenta, nego tek kada pogledamo izvor ( source ) dokumenta ili ako se nalaze unutar <pre><\pre> tagova za prikaz predformatiranog teksta. Iz te injenice proizlazi da se pomou slijedee tri funkcije briu i predformatirani znakovi. Ovaj problem se rjeava pomou tri PHP funkcije koje briu nepotreban bijeli prostor sa poetka stringa, kraja stringa ili sa poetka i kraja stringa. Te tri funkcije su slijedee: 1) ltrim ( $naziv_stringa ) ; - brie nepotreban bijeli prostor sa poetka stringa ( lijeve strane ) 2) rtrim ( $naziv_stringa ) ; - brie nepotreban bijeli prostor sa kraja stringa ( desne strane ) 3) trim ( $naziv_stringa ) ; - brie nepotreban bijeli prostor sa obje strane stringa Ove tri funkcije mogu brisati nepotreban bijeli prostor samo sa poetka i kraja stringa. Dakle, ne mogu brisati nepotreban bijeli prostor unutar stringa. Za to slui funkcija explode( ). Funkcija explode( ) dijeli string na niz ( array ) tako to pri svakoj pojavi razmaka dio stringa koji se nalazi izmeu prolog znaka razmaka i razmaka na kojeg je funkcija u tom trenutku naila stavlja u poseban dio niza. Za ovu funkciju su potrebna dva parametra koji se stavljaju unutar zagrada funkcije. Ti su parametri djelitelj ( govori gdje treba prekinuti string ) i naziv stringa koji dijelimo. Primjer ove funkcije se nalazi ispod teksta.
<?php $string = " Dobar dan. Kako se osjeate danas? " ; echo ( explode (" " , $string ); ?>

22

Kao to sam rekao, explode( ) funkcija dijeli zadani string u niz. U ovom sluaju dijeli string pri pojavi razmaka, kako je i zadano unutar zagrada explode( ) funkcije. Prikaz iznad napisanog koda bio bi ovakav:
Niz ( [0] [1] [2] [3] [4] [5] )

=> => => => => =>

Dobar dan. Kako se osjeate danas?

3.1 Traenje stringa ili stringa unutar stringa


Za traenje stringova u PHP-u se najee koristi funkcija strstr( ). Ova funkcija trai prvo pojavljivanje stringa kojeg smo joj zadali da ga pronae. U sluaju da sa ovom funkcijom pronaemo string koji smo traili, rezultat potrage e biti takav da e cijeli string u kojem smo traili odreeni string biti ispisan od dijela prvog pojavljivanja traenog stringa pa nadalje do kraja stringa u kojem smo ga traili, a svi znakovi prije pojavljivanja traenog stringa su izbaeni i ne ispisuju se. Unutar zagrada strstr( ) funkcije mora biti napisan string u kojem vrimo potragu i string koji traimo. Sintaksa naredbe je ovakva: strstr ( string_koji_ispitujemo , string_koji_traimo ) ; U polje stringa kojeg traimo moemo napisati i njegovu vrijednost u ASCII kodu, no u velikoj veliini se to ne pie, nego se pie direktno traena vrijednost. Primjer koritenja ove funkcije u kojem traimo string djed se nalazi ispod teksta:
<?php $string = " Moj djed se zove Slavko. " ; echo strstr ( $string , "djed" ) ; ?>

Na zaslonu korisnika e biti prikazan sljedei tekst:

djed se zove Slavko.

Ova metoda pretraivanja je jednostavnija od metode u kojoj se koriste regularne baze, ali loa strana ove metode je ta da ako dobiveni rezultat elimo opet koristiti za novu pretragu dobit emo isti rezultat jer se ve pronaeni string ili znak ne izbacuje iz rezultata nego se stavlja na poetak.

23

3.2 Provjera postojanja znaka ili stringa unutar stringa


Za provjeru postojanja stringa ili znaka unutar nekog stringa koristimo funkciju strstr( ) unutar zagrada if( ) funkcije. Takva se sintaksa koristi zato to strstr( ) funkcija vraa istinu ako je string pronaen ili la ako string nije pronaen te u ovom sluaju rezultat pohranjuje u varijablu $str_pretraga. Primjer pronalaenja stringa unutar stringa se nalazi ispod teksta:
<?php $string = " Jasmin je iz Vrgorca. " ; if($str_pretraga = strstr ( $string , "Vrgorca")) { echo " Pronaen je string".$str_pretraga "." ; } else { echo "<p> Traeni string ne postoji u stringu </p> " ; } ?>

Ispis na zaslonu korisnika e biti sljedei:

Pronaen je string Jasmin.

3.3 Ispis odreenog dijela stringa


Ako trebamo ispisati samo odreeni dio stringa tada koristimo funkciju substr( ). Unutar zagrada ove funkcije upisujemo na prvom mjestu string iz kojeg elimo ispisati neku vrijednost, na drugo mjesto upisujemo mjesto poetka ispisivanja, a na tree mjesto, koje nije obavezno, upisujemo koliku elimo duljinu stringa da nam se ispie. Pomou ove funkcije moemo ispisati samo dio stringa kojemu odreujemo poetak, jedan znak stringa ili cijeli string. Imamo mogunost ispisivanja sa poetka stringa ( lijeve strane ) ili sa kraja stringa ( desne strane ). Jedina razlika koju je pri tome potrebno naglasiti je ta da ako elimo ispisati neki dio stringa sa kraja tada na drugo mjesto unutar zagrada moramo upisati mjesto poetka, ali sa negativnim predznakom! Tako primjerice kada bi eljeli u tekstu: Ivica i Marica ispisati dio stringa Marica u zagrade substr( ) funkcije bi napisali slijedee:
<?php echo substr ( "Ivica i Marica" , -14 , 6 ) ; ?>

24

U drugom sluaju zamislimo da elimo ispisati dio Ivica . U tom sluaju u zagrade substr( ) funkcije je potrebno unijeti slijedee parametre:
<?php echo substr ( "Ivica i Marica" , 0, 5 ) ; ?>

Kao treu opciju. Zamislimo da trebamo ispisati samo sedmi znak u ovom stringu. Tada bi u zagrade substr( ) funkcije trebali unijeti slijedee parametre:
<?php echo substr ( "Ivica i Marica" , 7 , 1 ) ; ?>

I na kraju. Zadajmo si zadatak da ispiemo cijeli string pomou ove funkcije. U takvom primjeru bi parametri unutar zagrada substr( ) funkcije izgledali ovako:
<?php echo substr ( "Ivica i Marica" , 0 ) ; ?>

Primijetimo da nam u ovom sluaju nije potreban trei parametar ( duljina stringa koju elimo da nam funkcija ispie ) jer substr( ) funkcija, u sluaju da joj ovaj parametar nije zadan, ispisuje string od zadanog poetka pa sve do zadnjeg znaka.

3.4 Manipuliranje HTML markupom


U sluaju kada odreene znakove, koji se koriste takoer u sintaksi, piemo unutar echo( ) ili print( ) funkcija moemo zbuniti PHP. Kada primjerice unutar echo( ) funkcije napiemo apostrof znakove onda PHP to interpretira kao kraj teksta kojeg treba ispisati, a u stvari elimo da ispie i apostrof znakove. U takvim i slinim sluajevima koristimo HTML markup, odnosno svi HTML znakovi se trebaju zamijeniti s kodovima za posebne znakove. Za takav proces postoje funkcije ugraene u PHP-u i najee se za to koristi funkcija htmlspecialchars($str_HTML ). Ta funkcija gotovo sve znakove koji su navedeni unutar ispisa i koje treba promijeniti u posebne znakove prepoznaje i mijenja. Ti posebni znakovi se nazivaju entiteti. Neki od znakova koji se najee prepoznaju i mijenjaju ovom funkcijom su sljedei: 1) " mijenja u: &quot; 2) ' mijenja u: &apos; 3) & mijenja u: &amp; 4) < mijenja u: &lt; 5) > mijenja u: &gt; 6) " " mijenja u: &nbsp;

25

Naravno da postoje jo mnogi znakovi koji se mijenjaju, no ovi se znakovi najee pojavljuju i mijenjaju. Primjer koritenja ove funkcije se nalazi ispod teksta:
<?php $str_HTML = ""Kako si danas?" rekao je David" ; $str_bez_HTML = htmlspecialchars ( $str_sa_HTML ) ; ?>

Ovaj program ne bi nita ispisao ve bi javio pogreku. Druga naredba u kodu iznad teksta prebacuje apostrofe koji omeuju pitanje u slijedee naredbe koje su podebljane:
<?php $str_HTML = "&quot; Kako si danas? &quot; rekao je David" ; ?>

Ako imamo neki kratki kod koji ne sadri puno ovakvih sluajeva tada nam je ekonominije napisati odmah entitete umjesto funkcije htmlspecialchars( ).

3.5 Rezanje i lijepljenje stringa 3.5.0 explode( ) funkcija


Ovu temu sam u jednu ruku ve naeo kod podnaslova Izbacivanje nepotrebnih razmaka iz stringa gdje sam ve spomenuo funkciju explode( ). Naime, funkcija explode( ) slui za rezanje stringa, odnosno na dijeljenje stringa na vie dijelova tako da ga ree na zadanim mjestima. Primjer koritenja ove funkcije je ve napisan prije i glasi ovako:
<?php $string = " Dobar dan. Kako se osjeate danas? " ; echo ( explode (" " , $string ); ?>

Korisnik bi na svom zaslonu vidio slijedee:


Niz ( [0] [1] [2] [3] [4] [5] )

=> => => => => =>

Dobar dan. Kako se osjeate danas?

26

Iz ovoga se vidi da explode( ) funkcija dijeli zadani string na fragmente tako da je svaki novi fragment dio originalnog stringa izmeu dva znaka koji smo zadali kao uvjet razdvajanja u izmeu zagrada explode( ) funkcije. Svi novi fragmenti spremaju se u niz u kojem indeksi odgovaraju rednom broju fragmenta.

3.5.1 implode( ) funkcija


S druge strane, implode( ) funkcija lijepi fragmente ( dijelove ) koji se nalaze unutar niza. U implode( ) funkciji moramo naglasiti to elimo umetnuti izmeu fragmenata niza koje elimo spojiti i koji niz elimo spojiti. Sintaksa ove funkcije je sljedea: implode( znak_koji_elimo_da_ spaja , naziv_niza ). Ako ne upiemo nikakvu vrijednost na mjesto znaka koji elimo da spaja dijelove niza tada se kao tvornika vrijednost uzima jednostruki razmak. Funkcija radi tako da uzme sve elemente niza iz drugog parametra i spaja ih tako da zalijepi dva susjedna elementa niza pomou stringa ( znaka ) iz prvog parametra. Kao primjer djelovanja ove funkcije napisao sam sljedei kod:
<?php $string_spoji = array( "Ovo" , "je" , "zalijepljeni" , "string!" ) ; $zalijepi = implode (" ", $string_spoji ); echo $zalijepi ; ?>

Na zaslonu korisnikova raunala prikazalo bi se slijedee:

Ovo je zalijepljeni string!

3.6 PHP i Web Serveri


Svaka stranica koju posjeujemo smjetena je na nekom od mnogih Web servera. Oni prihvaaju posjetiteljeve HTTP zahtjeve, obrauju ih i vraaju HTTP odgovore. Svakim poslanim zahtjevom za neku HTML stranicu, Web server ita tu stranicu, to jest njenu odgovarajuu HTML datoteku i alje Web pregledniku ( npr. Mozilla Firefox, Internet Explorer, Google Chrome, Opera ) njen sadraj u obliku HTML koda prepisanog iz te datoteke, a preglednik zatim prima HTTP odgovor i prikazuje sadraj stranice.

27

Kada su u pitanju PHP stranice, proces je malo drugaiji. Web server sam po sebi ne razumije PHP pa je na njega potrebno instalirati PHP software. Tek nakon instalacije softwarea, posjetitelj moe posjetiti PHP stranicu. Nakon to je poslan zahtjev za neku PHP stranicu, Web server poinje itati datoteku pretpostavljajui da je u HTML-u te ju tako alje Web pregledniku. No im naie na PHP tag, Web server se prebacuje na PHP nain rada te tako nastavlja itati datoteku pretpostavljajui da su sve daljnje naredbe u PHP-u. Ovaj nain rada nastavlja se sve dok Web server ne naie na PHP zavrni tag, a tada se ponovno prebacuje na HTML nain rada. Serveri takoer omoguuju PHP-u spremanje korisnikovih osobnih ili nekih drugih podataka u $_SESSION varijable koje PHP moe koristiti za vrijeme korisnikovih posjeta stranici. Oito je da PHP i Web server surauju. Iako nije sastavni dio Web servera, PHP nakon instalacije radi na skoro svim poznatim serverima, a najbolje na Apache-u. Apache je besplatan i u kombinaciji sa PHP-om, Linux operacijskim sustavom i MySQL serverom prua vrstu podlogu za stvaranje naprednih Web stranica.

28

4. USPOREDBA PHP-a i C-a


Postoje mnoge slinosti izmeu ova dva programska jezika, ali s druge strane postoje i mnoge oite razlike. PHP je skriptni programski jezik poglavito namijenjen Web programiranju, dok je C programski jezik veinski namijenjen programiranju softwarea ( npr. OS Windows ). Ljudi koji su upueni u programske vode govore da PHP-u nedostaju aplikacije koje programeri uestalo koriste, dok C programski jezik navodno nema takvih nedostataka. Mnogi su pesimistini prema PHP-u i govore da je zastarjeli skriptni programski jezik koji je svoj sta odradio i da je vrijeme za neke nove jezike, ali nitko ne osporava njegovu kvalitetu za izradu dinamikih Web stranica i aplikacija. Ba kao to se PHP ne koristi za programiranje softwarea, C se ne koristi za programiranje Web stranica, odnosno sve do nedavno se nije koristio, sve dok ljudi nisu shvatili da sa Com mogu utedjeti memoriju i ubrzati proces izvravanja naredbi koda. No i C ima svoje mane, ba kao i to PHP ima svoje vrline. O usporedbi PHP-a i C-a i njihovim razlikama i slinostima vie slijedi u nastavku teksta.

4.0 Razlike izmeu PHP-a i C-a


Postoje mnoge razlike izmeu ova dva programska jezika. Po miljenju mnogih, osnovna razlika je ta to se kod napisan u C programskom jeziku treba pretvarati u strojni ( binarni ) kod, to jest compile-irati, dok s druge strane PHP jezik to ne zahtjeva. Naime, kod napisan u PHP programskom ( skriptnom ) jeziku se tumai raunalu i nakon toga se izvodi korak po korak ( step by step metoda), dok se kod napisan u C programskom jeziku prevodi u strojni kod ( binarni oblik ) i direktno izvrava preko procesora. Zanimljivo je da neke vodee i najposjeenije svjetske Internet stranice prevode PHP kod u C kod compiler-ima ( programskim prevodiocima ) jer na taj nain ubrzavaju proces izvravanja naredbi koda i tede dragocjenu memoriju na serverima. Tako je primjerice Facebook.com utedio 30% prostora na svojim serverima. Iako u novijim izdanjima C programskog jezika nije potrebno deklarirati varijable, potrebno je naglasiti da u PHP programskom jeziku nije nikada bilo potrebno deklarirati varijable, iako postoji osam tipova varijabli, dok je u C programskom jeziku potrebno tono odrediti i naglasiti kodom koji tip varijable deklariramo ( int, float, char ili double ). Uz prijanju napomenu o deklaraciji varijabli, potrebno je naglasiti da u PHP-u ispred svake varijable ( gdje god se nalazila ) treba napisati znak $ koji naglaava da se radi o varijabli. U kodu koji je napisan C programskim jezikom glavni dio programa se nalazi u main{ } dijelu, dok se u PHP programskom jeziku kod moe sastojati od vie glavnih dijelova programa, odnosno vie PHP dijelova koji zapoinju sa <?php i zavravaju sa ?>. U C programskom jeziku se dijelovi koda piu izvan glavnog dijela koda, kao na primjer funkcije, dok se u PHP-u ak i funkcije piu unutar PHP dijela. Razlika je i u prikupljanju informacija i podataka od korisnika. U PHP-u postoje dvije glavne metode prikupljanja podataka od korisnika i to su pomou $_GET i $_POST

29

funkcija, dok se podaci od korisnika u C-u prikupljaju sa scanf( ) naredbom ( funkcijom ). Postoji razlika u pohrani PHP datoteka i C datoteka. Naime, postoje tri ekstenzije pomou kojih se moe pohraniti PHP datoteka i to su: ".php", ".php3" i ".phtml". Uz tu informaciju se nadovezuje i injenica da PHP kod piemo u obinom notepad-u kojeg na kraju pohranimo sa jednom od tri nabrojane ekstenzije kako bi datoteka postala PHP skripta na temelju koje e raunalo izvravati zadane naredbe, dok s druge strane C piemo unutar nekog od programa koji je namijenjen tome (Dev-C++, Borland, itd.). PHP se odvija na Web serveru, to jest mora biti instaliran na nekom Web serveru ( npr. Apache server ), a C jezik to ne zahtjeva.

4.1 Slinosti izmeu PHP-a i C-a


Brojne su slinosti unutar PHP-a i C-a. Najbrojnije su slinosti u naredbama, odnosno sintaksi programskih jezika. Velik je broj naredbi koje imaju isto djelovanje, ali su razliitog naziva kao na primjer printf ( u C-u ) i echo ( u PHP-u ). No neke naredbe su u potpunosti iste, samo su mali detalji u sintaksi drugaiji. Tako je primjerice for( ) petlja u potpunosti ista u PHP programskom jeziku kao i u C programskom jeziku, jedina je razlika ta to se u PHP-u ispred varijable, unutar zagrada for-a pie $ kako bi naglasili da je rije o varijabli. Ista pravila vrijede za while( ) i za sve druge vrste petlji. Jo jedna vana slinost, to jest identinost je ta da se i u C-u i u PHP-u na kraju svake naredbe mora staviti toka zarez ( ; ) kako bi se naglasilo da je to kraj te naredbe. PHP i C nisu tako razliiti. Sintaksa im je gotovo identina, uz male preinake. Veina naredbi su takoer vrlo sline, operatori su takoer vrlo slini, gotovo identini, jedina je razlika to u PHP-u postoje tzv. kombinirani operatori koji su u biti skraenice za neke standardne operacije ( veinom matematike ). Obinim ljudima , kao i tvrtkama je vana injenica da je PHP besplatan i efikasan, isto vrijedi za C programski jezik i za programe u kojima se napisani kod u C programskom jeziku prevodi u strojni kod ( compiler-e ). Jo jedna od slinosti je ta da su oba jezika podrana na veini operacijskih sustava, i analogno tome moe ih se koristiti u irokom spektru djelatnosti. Takoer su sigurni jer korisnik odreene Web stranice napisane u PHP-u ili programa napisanog u C-u ne moe vidjeti kod kojim je taj program/stranica napisan/a. Jedna od slinosti je i naredba include, ali razlika je u tome da ta naredba u PHP-u ima svrhu umetanja nekog drugog koda unutar koda kojeg trenutano piemo koliko god elimo puta, dok ta naredba u C-u ima svrhu dodavanja biblioteka koje emo koristiti kao to su na primjer: #include<stdio.h>, #include<math.h> i jo brojne druge. Jo jedna vrlo bitna injenica je ta da se i PHP skriptni jezik, i C programski jezik mogu prilagoavati kako god eli autor koda. Sa tim mislim rei da autor moe odreivati gotovo svaki parametar unutar koda, izgled stranice ili programa, kako e se taj kod izvravati, da li e se odreeni dijelovi koda ponavljati i koliko puta, kakav e biti dizajn stranice, koje boje e biti koritene u stranici/programu i jo mnoge druge faktore. Drugim rijeima, autor ima apsolutnu slobodu i vlast u pisanju i odreivanju koda.

30

U svakom sluaju, ako programer ima dovoljno znanje o programiranju u PHP-u ili u C-u moe napisati zapanjujue programe u oba programska jezika ( raunalne igrice, matematike programe, ogromne Web stranice, Web igrice... ). Ispod teksta se nalaze dva primjera jednostavnih programa koji obavljaju istu radnju. Lijevi kod je napisan u PHP-u, a desni u C programskom jeziku. Vidljiva je razlika izmeu zapoinjanja i zavravanja programa i razlika u sintaksi. U ovom sluaju je vidljiva i razlika u duljini koda, ali je gotovo neprimjetljiva. Ali isto tako su vidljive i slinosti u naredbama i njihovim znaenjima, te u pisanju koda. PHP kod:
<html> <body> <?php echo " Dobar dan! " ; ?> </body> </html>

C kod:

#include <stdio.h> main() { printf ("\n Dobar dan ! " ) ; }

31

5. IZRADA PROGRAMA U PHP PROGRAMSKOM JEZIKU


5.0 Poetni dio stranice
Stranica ima pet glavnih stranica koje koriste isti kod na poetku i na kraju tako da je efikasnije taj ponavljajui kod spremiti u zasebne datoteke i ukljuivati ( include-ati ) ih na poetak i kraj tih glavnih stranica. Te dvije datoteke su gornji_dio.php i donji_dio.php. Ispod teksta se nalazi napisani kod gornjeg dijela ( gornji_dio.php ):
<html> <head> <!-- varijabla $title je zadana drugaija na svakoj stranici tako da se za svaku od njih prikae tono taj naziv stranice --> <title> <?php echo $title; ?> </title> </head> <body> <table width="750px" border="1"> <tr> <td height="120px" valign="bottom" align="center" style="background-image:url(images/pozadinska.jpg);"> <!- ovo je redak gdje je smjeteno zaglavlje --> <h1> <?php echo $title; ?> </h1> </td> </tr> <tr> <td height="15px" bgcolor="<?php echo $trenutna_boja; ?> "> <!- ovo je glavni izbornik(meni) --> <?php echo ' | <a href="index.php">Poetna </a>'; echo ' | <a href="primjer1.php">Primjer 1 </a>'; echo ' | <a href="primjer2.php">Primjer 2 </a>'; echo ' | <a href="primjer3.php">Primjer 3 </a>'; echo ' | <a href="o_meni.php">O meni </a>'; echo ' |'; ?> </td> </tr> <tr> <td align="left" height="350px" valign="top"> <!-- ovaj redak je otvoren i nakon njega se nastavlja sadraj svake pojedine glavne stranice(srednji dio)!! -->

32

U prikazanom kodu, unutar <head> </head> tagova , prva naredba je naredba koja se nalazi unutar tagova <title> </title> i ona nam omoguuje prikazivanje naslova svih ostalih stranica unutar browsera ( Web pretraivaa ). Sve slijedee naredbe piem unutar <body> </body> tagova. Slijedei korak je formiranje tablice koja je sr izgleda ( layout-a ) ove Web stranice. Uz naredbu table zapoeo sam formiranje tablice i zadavanje njenih mjera. Naredbom koja se nalazi ispod teksta sam definirao irinu tablice ( 750px = 750 piksela ) i izgled granica tablice, odnosno linija koje oznaavaju kraj tablice ( border = " 1 " ). Vano je napomenuti da sam tablicu radio u HTML-u. Ispod teksta je
prikazano kako sam definirao irinu tablice i stil njezinih granica:

<table width="750px" border="1">

Slijedee to sam uinio je definiranje prvog od etiri reda tablice i stavljanje pozadinske slike ( pozadinska.jpg ) u taj red. Mogunost definiranja reda tablice sam dobio tako to sam naredbe pisao unutar <tr> </tr> tagova. Nakon toga sam unutar <td> </td> tagova odredio visinu prvog reda tablice ( 120px = 120 piksela ), naredbom valign = "bottom" sam poredao tekst blie dnu reda, naredbom align="center" sam tekst poredao na sredinu reda, poslije toga sam pomou CSS koda dodao sliku preko cijelog reda tablice ( to je jedini CSS koji sam koristio ) i na kraju sam pomou naredbe echo dodao zaglavlje ( tekst ) koji sam prije pozicionirao naredbama valign i align. Nakon toga bilo je potrebno zatvoriti najprije </td> tag, a zatim i </tr> tag. Ovaj korak sam napravio preko slijedeih naredbi:
<tr> <td height="120px" valign="bottom" align="center" style="background-image:url(images/pozadinska.jpg);"> <h1> <?php echo $title; ?> </h1> </td> </tr>

U slijedeem redu tablice u formirati glavni izbornik ( meni ) stranice pomou kojeg u dobiti mogunost prelaska na ostale etiri glavne stranice. Prva od naredbi unutar novootvorenih tagova tablice ( osim definiranja visine reda tablice ) je:

bgcolor="<?php echo $trenutna_boja; ?>

Ova naredba odreuje boju pozadine glavnog izbornika koja je definirana u kodu prije ovoga i kojeg u poslije obraditi. U varijabli $trenutna_boja se nalazi boja koja je nasumino generirana sa funkcijom rand( ), no o njoj vie poslije. Posljedica ove naredbe je slijedea. Kada odaberemo neku od pet glavnih stranica pozadina glavnog izbornika e se promijeniti u jednu od nasumino generiranih boja. Linkove ( poveznice ) prema glavnim stranicama u postaviti pomou naredbi koje e me odvesti na neki link kojeg

33

sam zadao. Kako bih to napravio potrebno je stranice ( njihove datoteke ) na koje e linkovi voditi staviti u istu mapu ili tono napisati put do njih. U mom sluaju, datoteke sam stavio u istu mapu kao i datoteku gornji_dio.php. To sam napravio u PHP-u. Otvorio sam PHP tagove i unutar njih sam napisao pet linkova koji vode na pet glavnih stranica, a to su : Poetna, Primjer 1, Primjer 2, Primjer 3 i O meni. Kao oznaku koja vizualno odvaja te linkove stavio sam vertikalnu crtu ( | ). Za to sam koristio slijedeu naredbu:

<a href="vrijednost"> </a>;

Nakon ove naredbe sam dovrio tekst unutar echo funkcije kako bih naglasio o kojoj se od glavnih stranica radi, odnosno na koju od glavnih stranica vodi odreeni link. Kao i u prolom primjeru, potrebno je nakon napisanog koda zatvoriti tagove tablice. Glavni izbornik sam napravio pomou slijedeeg koda:
<tr> <td height="15px" bgcolor="<?php echo $trenutna_boja; ?> "> <!- ovo je glavni izbornik(meni) --> <?php echo ' | <a href="index.php">Poetna </a>'; echo ' | <a href="primjer1.php">Primjer 1 </a>'; echo ' | <a href="primjer2.php">Primjer 2 </a>'; echo ' | <a href="primjer3.php">Primjer 3 </a>'; echo ' | <a href="o_meni.php">O meni </a>'; echo ' |'; ?> </td> </tr>

Slijedei korak unutar gornji_dio.php, koji je moda i najvaniji za formiranje srednjeg dijela stranice ( sadraja ) je taj da sam otvorio tablicu pomou tagova za tablicu i definirao visinu reda u kojeg e se upisivati sadraj glavnih stranica, zadao sam naredbe za poravnavanje teksta kojeg u upisati ulijevo i pri vrhu tablice. To sam uinio na slijedei nain:
<tr> <td align="left" height="350px" valign="top">

Ovo je kostur kojeg e, uz donji_dio.php, koristiti svaka od pet glavnih stranica, odnosno biti e include-ani u svaku stranicu.

34

Vano je napomenuti da sam prije ovoga dijela koda napisao dio koda kako bih omoguio nasumino generiranje boje pozadine glavnog izbornika. To djelovanje mi je omoguila funkcija rand( ). Sintaksa rand( ) funkcije je slijedea: rand( min, max ) pri emu je min broj poetka niza, a max broj koji oznaava kraj niza. Naime, napravio sam niz $boje koji se sastoji od etiri elementa. U elemente tog niza sam unio vrijednosti ( nazive ) etiriju boja i to su: uta ( yellow ), crvena ( red ), zelena ( blue ) i bijela ( white ). Sa tim sam odredio da e se nasumino generirati te etiri boje i da e uvijek jedna od te etiri boje biti pozadina glavnog izbornika. Nakon toga sam pomou funkcije rand( ) i niza $boje upisao vrijednost u varijablu $trenutna_boja koju sam spomenuo gore. Ta varijabla slui za reguliranje i mijenjanje boje glavnog izbornika tako to funkcija nasumino generira neku od boja unutar niza $boje i zatim se ta vrijednost spremi u varijablu $trenutna_boja. To sam postigao pomou slijedeeg koda:
<?php //upisivanje vrijednosti(boja) u elemente niza $boje $boje[0] = "red" ; $boje[1] = "green" ; $boje[2] = "white" ; $boje[3] = "yellow" ; //u varijablu $trenutna_boja spremam vrijednost polja $boje[nasumino generirani index polja] $trenutna_boja = $boje[rand(0,3)]; ?>

5.1 Poetna stranica


Kao to sam ve rekao, svaka od glavnih stranica, pa tako i index.php ima includeanu ( umetnutu ) stranicu gornji_dio.php jer bez nje ne bi mogla raditi ( u njoj su otvoreni svi tagovi, ukljuujui html tagove i otvorena je tablica u koju e se sadraj glavne stranice upisivati ). Nadalje, varijablu $title, koju zadajemo unutar koda glavne stranice, ne bi bilo mogue prikazati u Web pregledniku i u prvom redku tablice bez da je upisana u stranici gornji_dio.php. Nakon to sam include-ao ( umetnuo ) stranicu gornji_dio.php otvorio sam nove PHP tagove ( preglednosti radi ) i unutar njih sam ispisao obian tekst koji govori par openitih stvari koje sam koristio u pisanju koda ove stranice kao koje sam funkcije koristio i tome slino. Nakon toga sam ponovno otvorio PHP tagove i unutar njih sam include-ao donji_dio.php stranicu koja je vana jer je u njoj zavretak tablice unutar koje se pie sadraj i posljednji redak tablice koja prikazuje cjelokupnu Web stranicu.

35

Kod stranice index.php izgleda ovako:


<?php //u varijablu $title je spremljen naziv trenutane stranice... u ovom sluaju 'Poetna' $title='Poetna'; include('gornji_dio.php'); ?> <?php echo '<h3>'.$title.'</h3>'; echo '<p>Ovo je primjer izrade programa u PHP programskom jeziku u svrhu maturalnog rada kao rjeenje pete teze.</p>'; echo '<p>Koritene su mnoge php funkcije kao npr echo, include, rand, date, str_replace, explode, trim itd.</p>'; echo '<p></p>'; ?> <?php include('donji_dio.php'); ?>

5.2 Primjer 1-brisanje bijelog prostora


U glavnoj stranici primjer1.php cilj mi je bio ispisati string sa vikom bijelog prostora i zatim obrisati taj viak bijelog prostora i ispisati string u kojem nema vika bijelog prostora. Kao i u prijanjoj glavnoj stranici prvi korak je bilo include-anje gornji_dio.php i donji_dio.php dijelova kako bih mogao izmeu njih pisati kod glavne stranice koji e biti ukljuen u tablicu. Nakon umetanja tih dvaju dijelov u varijablu $title sam spremio naziv stranice kako bi on bio ispisan u sadraju, u drugom redku tablice i u Web pregledniku. Zatim sam otvorio nove PHP tagove ( preglednosti radi ) i varijablu $pocetni_tekst upisao string sa vikom bijelog prostora na poetku i na kraju tog stringa. Nakon tog koraka sam pokuao ispisati upisani tekst u predformatiranom obliku kako bi se vidio taj viak bijelih razmaka, no kako bih to postigao trebao sam izmeu naziva varijable upisati tagove <pre> </pre> kako bih naglasio da trebam ispisati predformatirani tekst. Poslije toga sam koristei echo( ) funkciju ( kao i kod svakog ispisivanja u PHP-u ) na ekran ispisao sintaksu funkcije koju u koristiti za brisanje vika bijelog prostora ( trim($pocetni_tekst) ), a zatim sam koristei tu funkciju obrisao viak bijelog prostora sa poetka i sa kraja stringa i istovremeno pohranio novostvoreni string u varijablu $zavrsni_tekst. Na kraju sam ispisao vrijednost iz varijable $zavrsni_tekst, odnosno string bez vika bijelog prostora.

36

To sve sam uinio pomou slijedeeg koda:


<?php //u varijablu $title je spremljen naziv trenutane stranice... u ovom sluaju 'Primjer 1' $title='Primjer 1 - trim() funkcija'; include('gornji_dio.php'); ?> <?php echo '<h3>'.$title.'</h3>'; $pocetni_tekst = " Ja sam Jurica Galovi. Ovo je tekst sa bijelim razmacima na poetku i na kraju stringa koji se koristi u primjeru 1... Bijelih razmaka ima previe pa e ih trebati obrisati. "; echo '<p>Ovo je primjer teksta sa vikom bijelih razmaka spremljen u varijablu $pocetni_tekst:</p>'; echo '<pre>'.$pocetni_tekst.'</pre>'; echo '<p>Ovdje je tekst sa izbrisanim bijelim razmacima na poetku i kraju.</p>'; echo '<p>Koristi se funkcija trim($pocetni_tekst);</p>'; $zavrsni_tekst = trim($pocetni_tekst); echo '<pre>'.$zavrsni_tekst.'</pre>'; ?> <?php include('donji_dio.php'); ?>

5.3 Primjer 2- rastavljanje teksta funkcijom explode( )


Na stranici primjer2.php cilj mi je bio napraviti polje rijei i ispisati sedmu rije koristei explode( ) funkciju. Logino je da sam, kao i u prole dvije stranice prvo umetnuo gornji_dio.php i donji_dio.php, a zatim sam u varijablu $title upisao naziv stranice. Nakon toga sam otvorio novi PHP dio pomou PHP tagova <?php i ?> i unutar njih sam poeo pisati kod ove glavne stranice. Prvo to sam napisao je isto kao i u prethodne dvije glavne stranice, a to je naslov stranice kojeg sam ispisao pomou echo( ) funkcije i varijable $title. Nakon toga sam u novostvorenu varijablu $pocetni_tekst upisao proizvoljni tekst kojeg u dalje obraivati. Zatim sam ispisao tekst koji sam maloprije upisao u varijablu, a nakon toga sam ukratko opisao postupak kojim sam doao do sedme rijei, odnosno ispisao sam koju sam funkciju koristio, to sam unio u parametre funkcije kao djelitelj i u koju sam varijablu spremio rezultat funkcije. Za ovaj zadatak sam koristio funkciju explode( ), a kao parametar dijeljenja rijei sam u zagrade funkcije unio jednostruki razmak " ". Kao i u prolom kodu, u ovom sam takoer koristio tagove kako bih naglasio da se radi o predformatiranom tekstu.

37

Kod ove glavne stranice nalazi se ispod teksta:


<?php //u varijablu $title je spremljen naziv trenutane stranice... u ovom sluaju 'Primjer 2' $title='Primjer 2 - explode() funkcija'; include('gornji_dio.php'); ?> <?php echo '<h3>'.$title.'</h3>'; $pocetni_tekst = "Ja sam Jurica Galovi. Ovo je neki izmiljeni tekst koji e se iskoristit u ovom primjeru za explode funkciju. Tekst je spremljen u varijablu pocetni_tekst."; echo '<p>Ovako izgleda taj tekst: </p>'; echo '<pre>'.$pocetni_tekst.'</pre>'; echo '<p>String iz varijable $pocetni_tekst podjelit u na rijei.</p>'; echo '<p>Koristi se funkcija explode(" ", $pocetni_tekst);. Za djelitelja u koristiti jednostruki razmak " ".</p>'; $polje_rijeci = explode(" ", $pocetni_tekst); echo '<p>Rezultat je spremljen u varijablu $polje_rijeci i ispisana je sedma rije u stringu - $polje_rijeci[6].</p>'; echo '<pre>'.$polje_rijeci[6].'</pre>'; ?> <?php include('donji_dio.php'); ?>

5.4 Primjer 3- zamjena rijei


Cilj ovog primjera je pronai zadanu rije u zadanom stringu i zamijeniti je sa zadanom rijei na svakom mjestu. Da se zakljuiti da u prvo umetnuti dijelove koda gornji_dio.php i donji_dio.php i da u u varijablu $title upisati pripadajue ime glavne stranice. Nakon toga sam otvorio nove PHP tagove <?php i ?> unutar kojih sam pisao sadrajni kod glavne stranice. Prvo to sam napravio bilo je pisanje naslova dotine glavne stranice. Nakon toga sam u novostvorenu varijablu $pocetni_tekst upisao tekst unutar kojeg u traiti odreeni string i unutar kojeg u taj traeni string mijenjati sa zadanim stringom. Nakon toga sam korisniku javio da u ispisati taj tekst ( string ) sa krivim imenom. Poslije te poruke ispisao sam taj tekst koji sadri krivo ime u predformatiranom obliku. Zatim sam ispisao postupak kojim u promijeniti to krivo ime sa odgovarajuim imenom. Unutar toga sam naveo koju u funkciju za taj postupak promjene netonog stringa koristiti ( str_replace( "Pero","Jurica",$pocetni_tekst ).

38

Sintaksa ove funkcije je slijedea :


<?php str_replace(traeni_string,zamjenski_string,string_za_pretragu); ?>

Nakon toga sam na ekranu ispisao poruku da slijedi tekst sa ispravljenim imenom. Zatim sam pomou str_replace( ) funkcije pretraio upisani tekst i pronaao traeni string i zamijenio ga sa odgovarajuim stringom. Kao zadnja naredba unutar PHP tagova napisao sam ispis tonog ( promijenjenog ) stringa. Kod cijele stranice se nalazi ispod teksta:
<?php //u varijablu $title je spremljen naziv trenutane stranice... u ovom sluaju 'Primjer 3' $title='Primjer 3 - str_replace() funkcija'; include('gornji_dio.php'); ?> <?php echo '<h3>'.$title.'</h3>'; $pocetni_tekst = "Ja sam Pero Galovi, ali inae Pero nije moje pravo ime. Mislim da je Pero najbolje ime od svih imena."; echo '<p>Ovo je tekst sa krivim imenom spremljen u varijablu $pocetni_tekst:</p>'; echo '<pre>'.$pocetni_tekst.'</pre>'; echo '<p>Koristi se funkcija str_replace("Pero","Jurica",$pocetni_tekst);'; echo '<p>Ovdje je tekst sa ispravljenim imenom:</p>'; $zavrsni_tekst = str_replace("Pero","Jurica",$pocetni_tekst); echo '<pre>'.$zavrsni_tekst.'</pre>'; ?> <?php include('donji_dio.php'); ?>

39

5.5 Primjer 4 ispitivanje parnosti pomou if( ) funkcije


U ovom primjeru sam koritenjem funkcije rand( ) sluajno generirao broj i nakon toga sam koristio funkciju if( ) kako bih ispitao da li je taj broj paran ili neparan. Kao i u svim primjerima do sada, prvo to sam napravio je umetanje dijelova gornji_dio.php i donji_dio.php koji su kostur svake od glavnih stranica. Nakon toga sam korisniku ispisao poruku sa upitom da li je sluajno generirani broj paran ili neparan. Zatim sam u varijablu $title upisao ime dotine glavne stranice. Nakon toga sam pomou rand( ) funkcije nasumino generirao broj od 0 do 100 i spremio ga u varijablu $broj na slijedei nain: <?php $broj = rand(0,1000); ?>

Nakon generiranja broja sam unutar zagrada if( ) funkcije taj generirani broj, odnosno varijablu u koju je spremljen podijelio sa 2 i ispitivao da li je ostatak dijeljenja jednak nuli. Ako jest tada je taj broj paran, u suprotnom je neparan. U vitiaste zagrade if( ) funkcije sam ispisao pomou echo( ) funkcije da je broj paran, a unutar zagrada else( ) dijela sam ispisao da je broj neparan. Cijeli kod primjera se moe vidjeti ispod teksta: <?php //u varijablu $title je spremljen naziv trenutane stranice... u ovom sluaju 'Primjer 4' $title='Primjer 4 - if( ) funkcija'; include('gornji_dio.php'); ?> <?php echo '<h3>'.$title.'</h3>'; echo '<p>Da li je sluajno generirani broj paran ili neparan:</p>'; //sluajno generiranje broja od 0 do 100 i spremanje u varijablu $broj $broj = rand(0,1000); //ispitivanje generiranog broja i ispisivanje rezultata if($broj%2 == 0) { echo 'Sluajno generirani broj '. $broj .' je paran.'; } else { echo 'Sluajno generirani broj '. $broj .' je neparan.'; } ?> <?php include('donji_dio.php'); ?>

40

5.6 Primjer 5 primjer switch( ) petlje


U ovom primjeru sam koristei switch( ) funkciju, if( ) funkciju i rand( ) funkciju izraunao i ispisao koja je godina prijestupna, koja nije prijestupna i koja e biti prijestupna ( ako je godina prije ili poslije godine koja se ispituje ). Prvo sam umetnuo gornji_dio.php i donji_dio.php i zadao pripadajui naziv primjera. Zatim sam ispisao tekst u kojem korisniku govorim o emu se radi na ovoj stranici. Zatim sam pomou rand( ) funkcije generirao brojeve od 1900 do 2100 i spremio ih u varijablu $godina. Nakon toga sam korisniku napisao jedan dio postupka za koji smatram da je bio najvaniji. Zatim sam varijablu $godine podijelio sa 4 i ostatak tog dijeljenja spremio u varijablu $ostatak. Ta varijabla mi slui kako bih mogao ispisati da li je godina prijestupna, da li nije prijestupna, da li je godina prije bila prijestupna ili e godina kasnije biti prijestupna. Na kraju sam pomou switch( ) funkcije napisao 4 mogua sluaja i default u da je neto krivo. Za prvi sluaj vrijednost varijable $ostatak je 0 i tada je godina koja se ispituje prijestupna, u drugom sluaju vrijednost varijable $ostatak je 1 i tada godina nije prijestupna, ali godina prije te godine jest, u treem sluaju je vrijednost varijable $ostatak 2 i tada godina nije prijestupna i u etvrtom sluaju je vrijednost varijable $ostatak 3 i tada godina koja se ispituje nije prijestupna, ali godina nakon te jest. Zatim sam korisniku ispisao tekst u kojem pie da sam za raunanje godina koristio varijablu $ostatak. Kod primjera izgleda ovako: <?php //u varijablu $title je spremljen naziv trenutane stranice... u ovom sluaju 'Primjer 5' $title='Primjer 5 - switch( ) petlja'; include('gornji_dio.php'); ?> <?php echo '<h3>'.$title.'</h3>'; echo '<p>Koja je godina od 1900. do 2100. prijestupna: <p>'; $godina = rand(1900,2100); echo '<p>Generiranu godinu podijelio sam s 4 i ostatak spremio u varijablu $ostatak:</p>'; $ostatak = $godina % 4; switch($ostatak) { case 0; echo 'Godina '.$godina.'. je prijestupna.'; break; case 1; echo 'Godina '.$godina.'. nije prijestupna.Godina prije nje '.($godina-1).'. je prijestupna.'; break; case 2; echo 'Godina '.$godina.'. nije prijestupna.'; break; case 3; echo 'Godina '.$godina.'. nije prijestupna. Godina poslije nje '.($godina+1).'. je prijestupna.'; break; default; echo 'Neto je krivo.'; break; } ?> <?php include('donji_dio.php'); ?>

41

5.7 Primjer 6 lepeza boja pomou for( ) petlje


Cilj ovog posljednjeg primjera je ispisati paletu boja koje se kreu od crne boje prema crvenoj boji. Kao i u prijanjim primjerima prvo sam umetnuo dijelove koda gornji_dio.php i donji_dio.php i u varijablu $title upisao pripadajue ime glavne stranice. Nakon toga sam otvorio nove PHP tagove <?php i ?> unutar kojih sam pisao sadrajni kod glavne stranice. Prvo sam ispisao tekst koji govori o ulozi for( ) petlje i varijable $crvena u cjelokupnom kodu ove stranice. Zatim sam ispisao poruku koja korisniku govori da se ispod teksta nalazi paleta boja. Nakon toga sam otvorio for( ) petlju i unutar njenih zagrada sam zadao da varijabla $crvena poinje od dekadske vrijednosti 0, zatim da se petlja vrti do vrijednost 255 i da se vrijednost varijable poveava svakim korakom za 17. To prikazuje odsjeak koda ispod teksta:
<?php for ($crvena=0; $crvena<=255; $crvena=$crvena+17) ?>

U for( ) petlji sam svaki put ispisivao novi <span> tag koji ima drugaiju pozadinsku boju koja je blia crvenoj. To sam postigao tako to sam crvenu komponentu ( udio ) poveavao za 17 dok udio crvene nije iznosio 255, odnosno FF u heksadecimalnom zapisu. U poetku je udio crvene boje bio 00. Analogno tome, udio zelene i plave boje takoer je morao biti 00 kako bi poetna boja palete bila crna boja ija je heksadecimalna vrijednost 00 00 00 pri emu prve dvije znamenke prestavljaju udio crvene, druge dvije udio zelene i posljednje dvije udio plave boje. Za prikazivanje palete sam koristio <span> tag na kojem sam primjenjivao pozadinsku boju. No, prije cijelog ovog postupka je bilo potrebno pretvoriti dekadsku vrijednost u heksadecimalnu i za to sam koristio hexdec( ) funkciju koja za ulazni parametar prima cijeli broj ( integer ), a vraa heksadecimalni string. Unutar zagrada hexdec( ) funkcije sam upisao varijablu $crvena jer sam unutar for( ) petlje mijenjao njezinu vrijednost, odnosno udio crvene boje ( komponente ) i rezultat sam spremio u varijablu $hex. Pretvorbu dekadske vrijednosti u heksadecimalnu prikazuje kod napisan ispod teksta:
<?php $hex = dechex($crvena); ?> Nakon tog koraka sam ispisao paletu boja koristei neke elemente CSS programiranja. Koristei naredbu background-color: sam odredio boje unutar <span> taga, odnosno pomou for( ) petlje i ove naredbe sam definirao izgled ( boju ) cjelokupne palete. Paletu sam napravio tako to sam svakim korakom for( ) petlje ispisao promijenjenu vrijednost $hex varijable koja je svakim korakom bila sve blia crvenoj boji. Nakon toga, na kraju ove naredbe sam odredio duljinu svakog dijela palete tako to sam dodao tri razmaka pomou &nbsp; naredbe.

42

Kod cijele stranice prikazan je ispod teksta: <?php // u varijablu title je spremljen naziv trenutane stranice... u ovom sluaju 'Primjer 6' $title='Primjer 6 - for( ) i promjena boja'; include('gornji_dio.php'); ?> <?php echo '<h3>'.$title.'</h3>'; echo '<p>Unutar for( ) petlje svakim korakom se vrijednost varijable $crvena poveava za decimalnu vrijednost 17 kako bi se boja palete sve vie pribliavala crnoj boji.</p>'; echo '<p>Paleta boja od crne do crvene izgleda ovako:</p>'; for ($crvena=0; $crvena<=255; $crvena=$crvena+17) { // pretvorba dekadske vrijednosti varijable $crvena u heksadecimalnu pomou dechex( ) funkcije $hex = dechex($crvena); echo '<span style="backgroundcolor:#'.$hex.'0000;">&nbsp;&nbsp;&nbsp;span>'; } ?> <?php include('donji_dio.php'); ?>

5.8 Stranica O meni


Ova glavna stranica slui kako bi se na njoj mogle pronai nekakve openite informacije o meni kao to su primjerice: datum roenja, mjesto roenja, osnovna kola, naziv osnovne kole, srednja kola, naziv srednje kole... Ista stvar kao i kod ostale etiri glavne stranice je umetanje gornji_dio.php i donji_dio.php dijelova na poetak, odnosno na kraj koda i davanje imena pomou $title varijable. Taj postupak je isti kao i u prijanja etiri sluaja. Jedina razlika je ta to ovoj stranici dajem njezino dotino ime. Nakon tih postupaka sam otvorio nove PHP tagove ( kao i dosada ) i unutar njih sam poeo pisati kod ove glavne stranice. Prva stvar koju sam dodao, a koja nije prisutna u ostalim glavnim stranicama jest dodavanje slike. Poto je naslov stranice O meni mislim da je dobra ideja da uz tekst stavim i moju sliku. To sam napravio pomou < img src=" " / > naredbe. Tu sam sliku trebao dodati u mapu u kojoj se nalaze obje slike koje sam koristio u izradi sveukupne stranice i tu sam mapu nazvao images. Poto se slika ne nalazi u isoj mapi kao i kod stranice o_meni.php potrebno je upisati put do slike. Sintaksa ove naredbe je slijedea:

43

<?php < img src = "naziv_slike.jpg" alt="Naziv slike na stranici" / > ?>

Nakon dodavanja slike na stranicu, napisao sam par reenica o sebi koristei echo( ) funkciju. Na kraju pisanja koda za ovu glavnu stranicu, dodao sam link na e-mail na kojem me se moe kontaktirati. To sam uinio koristei naredbu za postavljanje linka ( <a href = " naziv_stranice.php "> </a> ; ) uz dodatak jednog dijela. Sintaksa davanja linka na mail je slijedea:
<?php <a href = "mailto:ime@mail.com " > ime@mail.com </a> ?>

Sintaksa cijele stranice je ispod teksta:


<?php //u varijablu title je spremljen naziv trenutane stranice... u ovom sluaju 'O meni' $title='O meni'; include('gornji_dio.php'); ?> <?php echo '<h3>'.$title.'</h3>'; echo '<img src="images/ljepotan.jpg" alt="Jurica Galovi" />'; echo '<p>Moje ime je Jurica Galovi. Roen sam 15.6.1992. u Zagrebu i zavrio sam Osnovnu kolu Ive Andria u Sopotu i sada zavravam Srednju tehniku kolu Ruera Bokovia u emu e mi nadam se pomoi ova stranica koja je dio mog maturalnog rada.</p>'; echo '<p>Moete me kontaktirati na e-mail: <a href="mailto:jux1506@windowslive.com">jux1506@windowslive.com</a> </p>'; ?> <?php include('donji_dio.php'); ?>

44

5.9 Zavrni dio stranice


Uloga donji_dio.php dijela koda je da zavri dio tablice u kojem je upisan glavni dio stranice, odnosno sadraj. Poetni dio koda od donji_dio.php i zavrni dio koda od gornji_dio.php se upotpunjuju i izmeu njih se nalazi sadraj stranica u treem redku tablice. Osim to zatvara trei redak tablice, u donji_dio.php se nalazi i posljednji etvrti redak tablice, odnosno footer. Nakon zatvaranja tekueg redka tablice, otvorio sam novi redak pomou tagova za tablice <tr> i </tr>, te <td> i </td>. Nakon otvaranja <td> tagova sam definirao visinu tablice ( 30px = 30 piksela ) i poravnao sam tekst na sredinu ( align = center ). Nakon toga, u <td> dijelu sam napisao tekstualni dio u footeru. Znak &copy prikazuje znak . Unutar PHP tagova sam upisao funkciju date("Y"). Ta funkcija na ekranu ispisuje vrijeme, u ovom sluaju ispisuje tekuu godinu ( Y = year = godina ). Nakon toga sam zatvorio </td> tag, a zatim njega sam zatvorio i </tr> tag. Za oznaavanje kraja tablice potrebno je upisati tab koji oznaava kraj, a taj tag je </table>. Nakon zatvaranja tog taga preostalo je jo samo zatvoriti </body> i </html> tagove s kojima smo zakljuili zatvaranje donji_dio.php dijela i s tim zatvaranje i kraj cijelog dokumenta.

Kod donji_dio.php dijela izgleda ovako:


<!-- nastavak koda tablice zapoete na kraju gornji_dio.php koda --> </td> </tr> <tr> <td height="30px" align="center"> Copyright &copy; Jurica Galovi 2010 - <?php echo date("Y"); ?> </td> </tr> <!-- zatvaranje tablice zapoete na kraju gornji_dio.php koda --> </table> </body> </html>

45

6. SAETAK
PHP, koliko god da ga smatraju manje naprednim se i dalje koristi i konkurira nekim naprednijim programskim jezicima kao na primjer Java, C++, pa ak i ASP.NET. U dananjem svijetu kada je Internet jedna od najbrih rastuih tehnologija, PHP svojom raznovrsnou ponude omoguuje svima, koji za to imaju interesa, laganu prilagodbu na njihove alate i samim time poveanje zainteresiranosti za ovaj vid programiranja. Jednostavnost koritenja, besplatna dostupnost i gotovo neograniene mogunosti privlae sve vei broj korisnika koji imaju elju nauiti ovakvu vrstu programiranja. Ova tema mi se inila poprilino lagana i zbog tog olakog shvaanja problematike koju, u samim poetcima njegove izrade jo nisam razumio, sam projekt inio mi se konzekventno puno lakim. No nailazivi na neke od problema koje nisam mogao razumjeti, trudio sam se sve vie kako bih dokuio emu oni slue i kako se neke od naredbi i u koju svrhu trebaju koristiti. U rjeavanju takvih, i takvim slinih problema uvelike mi je pomogao HTTP Web server Apache ( verzija 2.2.17 ) i na njemu instaliran PHP ( verzija 5.3.5 ). Za instalaciju Apache i PHP-a koristio sam WAMP instalacijski paket koji u sebi ve ima sadran PHP i MySQL i uvelike olakava njihovu konfiguraciju i instalaciju. Pomou PHP jezika moemo stvoriti nevjerojatne Web stranice pune raznih izbornika, velikog broja boja, velikih i malih slika i raznih drugih aplikacija i datoteka. Znanje koje nam ova tehnologija nudi nemogue je u potpunosti savladati koliko god se trudili. S druge strane, mislim da nam to moe biti samo dodatna motivacija i poticaj, jer sa novim iskustvom i praksom ne moemo nita izgubiti, a moemo dobiti tako puno.

46

7. LITERATURA
1. Valade Janet: PHP5 for Dummies, Wiley Publishing Inc, Indianapolis 2004 2. Converse et al: PHP5 and MySQL Bible, Wiles Publishing Inc, Indianapolis 2004 3. Mercer, Dave et al: Beginning PHP5, Wrox Press, 2004 4. http://www.w3schools.com/php/default.asp 5. http://www.tizag.com/phpT/ 6. http://www.php-mysql-tutorial.com/wikis/php-tutorial/php-variable-types.aspx 7. http://www.tutorialspoint.com/php/php_variable_types.htm 8. http://www.webmajstori.net/clanci/programiranje/tehnike-php-programiranja-radsa-stringovima-1dio-uvod/353/ 9. http://en.wikipedia.org/wiki/PHP 10. http://www.daniweb.com/web-development/php/threads/144256 11. http://www.htmlcodetutorial.com/help/sutra65617.html 12. http://www.webdeveloper.com/forum/showthread.php?t=214680 13. http://www.techiwarehouse.com/engine/d3bf2317/Building-Dynamic-Web-Pageswith-PHP

47

You might also like