

















































Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
PHP skriptaPHP skriptaPHP skripta
Tipologija: Ispiti
1 / 57
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!


















































Za PHP fajlove, bitne su sledeće činjenice:
Najpopularnija arhitektura u okviru koje se PHP koristi je WAMP (Windows/Apache/MySQL/ PERL/PHP). Windows je operativni sistem gde se instaliraju ostali elementi pomenute arhitekture. Apache je open source Web server, tako da se i na lokalnoj mašini uz pomoć Apache - a, može simulirati klijent/server okruženje. MySQL je open source server baze podataka koji podržava SQL ( Structured Query Language ) i idealan je kako za manje, tako i za veće baze podataka. Ako se PHP koristi u kombinaciji sa MySQL – om može se napraviti multiplatformska aplikacija, što znači da se može razviti u Windows okruženju, a da se potom koristi na npr. Unix mašinama.
PHP je bogat funkcijama za manipulisanje mnogo različitih tipova sadržaja. Od manipulisanja grafikom (png, jpg, flash…) do loado-vanja .NET modula i rada sa XML-om
Da bi se implementirala pomenuta arhitektura, neophodno je uraditi sledeće:
Takođe treba napomenuti da je moguće gore navedene komponente skinuti u formi paketa koji sadrže sve pomenute komponente. Najpoznatiji paketi tog tipa su: EasyPHP 4 , WAMP^5 i XAMPP^6_._ Download i korišćenje ovih paketa je takođe besplatno.
Program koji se napiše u PHP-u ne zahteva prevođenje (kompajliranje), nego se interpretira pri svakom izvršavanju. PHP interpreter može raditi po CGI principu, odnosno tako što će interpreter postojati kao eksterna aplikacija koja se poziva da izvrši datu skriptu svaki put kad bude zahtevana od nekog korisnika, a može biti instaliran i kao modul veb-servisa. Druga varijanta je danas u najvećoj upotrebi jer pruža znatno veću brzinu izvršavanja - interpreter je na taj način uvek učitan u memoriju te se ne mora pozivati spoljašnji program.
Uobičajen scenario po kom se izvršavaju PHP skripte na web serveru je sledeći:
klijent (korisnik Interneta koji koristi neki brauzer) zahteva PHP stranicu sa servera server prosleđuje zahtev servisu za veb (program veb-server na serveru) veb-server prepoznaje da se traži PHP datoteka ne šalje njegov sadržaj klijentu, nego ga izvršava kao program pomoću PHP modula izlazni tekst programa (standardni izlaz) se šalje klijentu kao rezultat zahteva klijent prepoznaje vrstu rezultata (HTML kod, slika, PDF sadržaj, arhiva itd.) rezultat se prikazuju klijentu na odgovarajući način
(^1) http://httpd.apache.org/download.cgi (^2) http://www.mysql.com/downloads/index.html (^3) http://www.php.net/downloads.php (^4) http:///www.download.com/EasyPHP/3000-7957_4-10297309.html (^5) http://www.wampserver.org (^6) http://www.apachefriends.org/en/xampp.html
Server side skripte se izvršavaju na serveru kada server primi zahtev za obradom. Nakon zahteva server izvršava kod i na osnovu njega generiše HTML kod i šalje ga klijentu. To znači da stranica koja se prikazuje u pretraživaču klijenta ne postoji u tom obliku nigde na serveru odakle ju je klijent primio.
Glavni predstavnik client-side grupe jezika je JavaScript. Kod pisan u JavaScriptu je obično umetnut u HTML stranicu i izvršava se tek u klijentovom pretraživaču.
Osnovna razlika između PHP i HTML stranica je u načinu na koji web server upravlja njima.
Kada web serveru stigne zahtev za HTML stranicom, web server preduzima sledeće operacije:
Slika Obrada zahteva za HTML stranicom
Kada web server dobije zahtev za PHP stranicom, umesto slanja statičke HTML stranice, server preduzima određene akcije u skaldu sa PHP kodom:
Slika Obrada zahteva za HTML stranicom
Server-side obrada omogućava:
Možda bi bilo najbolje malo detaljnije razmotriti razlike između njih na jednom trivijalnom primeru. Neka je na primer, potrebno napisati skriptu koja prikazuje tačno vreme negde na stranici. Iako ovo zvuči kao vrlo trivijalan i lagan primer, gotovo ga je nemoguće izvesti. Zašto? Prvo pitanje koje treba postaviti je 'Koje je vreme tačno vreme?'. Ono na serveru ili ono na klijentovom računaru? Ove dve skripte će retko kada prikazati isti rezultat.
Primer 1 – prikaz vremena kod klijenta
Primer outputa Zdravo svete
Kao što iz primera vidi, svaka linija PHP koda mora da se završi tačkom – zarez. Tačka – zarez se koristi da bi se jedan set instrukcija razdvojio od drugog seta. Postoje dve osnovne komande koje služe za prikazivanje teksta na browser – u: echo i print^7. Kao što je već rečeno, PHP kod se nalazi u okviru HTML koda i izvršava se na serveru. Tek kada se PHP kod izvrši na serveru, output se šalje do browser - a klijenta koji izvršava HTML kod i prikazuje PHP kod koji je već izvršen na serveru,tj. prikazuje i rezultat PHP koda i rezultat HTML koda. Ako se na primer u PHP skripti koristi komanda echo “”, dešava se sledeće:
Pomoću echo naredbe u PHP skriptama, mogu se pisati bilo koji HTML kodovi koje browser treba da izvrši.
Unutar koda je moguće prebaciti se, u bilo kojem trenutku, iz HTML moda u PHP mode. Cak i unutar if, for i ostalih kontrolnih struktura. Ovo omogućuje rad sa template-ima u kojima se na isti način prikazuju različiti podaci iste strukture. Ovo je Ilustrovano jednostavnim primerom:
Primer 5
Untitled
(^7) Razlika između ove dve funkcije je samo u tome što funkcija print može da vrati vrednost true/false, a echo nema tu mogućnost. Echo je za nijansu brža pri izvršavanju programa
Rezultat gornjeg koda je:
Marko Markovic
Za ispis sadržaja varijable korišćena su dva različita načina koji su rezultirali istim krajnjim ispisom. Naime unutar se nalazi php kod koji će se izvršiti ukoliko se u njemu ne nalaze neke sintaksne greške. Druga metoda ispisa je izgledala ovako : . Ova metoda se koristi kada je potrebno ispisati neku varijablu ili string. Ova linija je identična samo što je umesto echo naredbe korišćen znak = koji PHP-u govori da ispiše ono što se nalazi između oznaka.
Kao što i u HTML – u postoje komentari, tako se komentari mogu navoditi i u PHP bloku. Postoje dve osnovne vrste komentara u PHP – u: jednolinijski ( single – line comment ) i višelinijski ( large comment block ) komentari. Za jednolinijske komentare se koristi symbol “ //” , a za višelinijski komentari se pišu između “ /* “ i “ */ ” simbola. Sledi primer.
Primer 6
Primer PHP komentara
Promenljive (varijable) se u PHP – u koriste za čuvanje konkretnih vrednosti kao npr. tekst stringova, brojeva ili nizova. Kada se jednom promenljiva postavi, ona se može koristiti više puta u PHP skripti. Sve varijable u PHP – u počinju simbolom dolar simbolom “ $ “. Pravilno postavljena (setovana) promenljiva ima sledeću sintaksu:
$ime_promenljive=vrednost; U PHP – u promenljiva ne mora da se deklariše pre nego što se postavi, što znači da ne mora da se navede tip promenljive kao u drugim programskim jezicima. U PHP – u se promenljive automatski deklarišu kada se koriste.
Postoje neka pravila za dodeljivanje imena promenljivima koja moraju da se poštuju:
Funkcije u PHP-u se definišu sledećom sintaksom:
Primer 8
Primer 9 : Funkcije sa povratnim rezultatom:
U gornjem primeru su umesto varijabli $br1 i $br2 korišćene i varijable imena $broj1 i $broj2. Ovo je moguće zato što se funkciji ne daju same varijable već njihove vrednosti koje se čuvaju u lokalnim (funkcijske) varijablama koje postoje samo za vreme izvođenja funkcije. Ukoliko je potrebno funkcijom izmeniti sadržaj neke varijable, ona se mora dati funkciji pomoću reference (pass by reference). Ne postoji oznaka za referencu u ovom slučaju pri pozivu funkcije. Sama postavka funkcije čini da se varijabla daje funkciji pomoću reference. U ovom slučaju je korišćeno davanje varijable pomoću reference u liniji povecaj ($neki_broj,10).
Primer 10 : Slanje varijabli pomoću reference
Nije obavezno koristiti isto ime varijable u glavnom programu i funkciji, iako je moguće. Rezultat će u oba slučaja biti isti.
Primer 11 : Funkcije sa default vrednostima
function frizider($stanje="pun"){ echo "Frizider je $stanje";
} // ispis default vrednosti frizider(); echo ""; // ispis date vrednosti frizider("prazan"); ?>
Rezultat : Frižider je pun
Frižider je prazan
Pri radu sa funkcijama koje imaju default vrednost bitno je da ta vrednost mora biti konstanta (string ili broj). Isto tako ukoliko funkcija ima više argumenata od kojih jedan ili više imaju default vrednosti oni moraju biti sa krajnje desne strane liste argumenata iza argumenata bez default vrednosti:
Primer 12
3.1.. Funkcije za upravljanje varijablama
Php poseduje niz ugrađenih funkcija za rad sa varijablama:
gettype()
Ova funkcija vraća vrednost tipa promenljive. Moguće vrednosti:
settype()
Funkcija postavlja vrednost tipa podataka:
Ako se definiše varijabla kao static u nekoj funkciji, ona se inicijalizuje prilikom prvog poziva funkcije i postavlčja na definisanu vrednost. Svaki sledeći poziv funkcije neće dovesti do nove inicijaliizacije.
Operatori koji se koriste u PHP script programskom jeziku:
Operator Opis Primer Rezultat
/ Deljenje 15/ 5/
% Moduo 5% 10% 10%
++ Uvečanje za 1 x= x++
x=
-- Smanjenje za 1 x= x--
x=
Operator Primer Je isto kao i = x=y 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
Operator Opis Primer == Jednako kao 5==8 vraća false != Nije jednako kao 5!=8 vrača true > Veće od 5>8 vraćafalse < Manje od 5<8 vraća true >= Veće ili jednako od 5>=8 vaća false <= Manje ili jednako od 5<=8 vraća true
Operator Opis Primer && I – konjukcija. Konjukcija je tačna ako i samo ako su oba iskaza tačna.
x= y= (x < 10 && y > 1) vraća true || ILI – disjunkcija. Disjunkcija je tačna ako i samo ako je jedan od iskaza tačan.
x= y= (x==5 || y==5) vraća false ! Negacija x= y= !(x==y) vraća true
Cast operatori u PHP su:
Primer 13 : PHP primer sa operatorima
Primer sa operatorima
$y) || ($y>$z); echo $promenljiva; // ovde se se vraca rezultat 1, jer je iskaz true $promenljiva1=($x!==$y) && ($z<=$y) && ($y!==105); echo $promenljiva1; // ovde se ne vraca rezultat, jer je iskaz false
// naredbe koje se izvršavaju ukoliko je uslov == false i uslov2 == false i uslov == true } else { // naredbe koje se izvršavaju ukoliko su svi uslovi == false } ?>
Primer 17
Primer elseif uslovne naredbe
30 && $promenljiva<=45) { echo "Broj je veci od 30, a manji ili jednak 45"; } else { echo "Broj je veci od 45"; } ?>
Ukoliko treba da se izvrši jedan ili više blokova programskog koda, koristi se switch naredba. Switch naredba se koristi zbog izbegavanja velikih blokova programskog koda if … elseif … else naredbi. Sintaksa:
switch (promenljiva) { case slučaj1:
kod koji se izvrsava ako je promenljiva = slučaj1 ;
break; case slučaj2: kod koji se izvrsava ako je promenljiva=slučaj2; break; case slučaj3: kod koji se izvrsava ako je promenljiva=slučaj3; break; default: kod koji se izvrsava ako vrednost promenljive nije jednaka ni jednom navedenom slučaju; }
Primer 18: Primer switch naredbe
Primer switch naredbe
php $x=10; switch($x) { case 1: echo "Broj je 1";
break; case 10: echo "Broj je 10"; break; case 20: echo "Broj je 20"; break; default: echo "Ne znam koji je broj"; } ?>
Ključna reč break označava završetak grane. Ukoliko se izostavi između dve grane naredbe, obe grane će se izvršiti ukoliko je viša (ona koja sledi pre) aktivirana. Naredbe će se izvršavati sve dok se ne pojavi break ili završetak switcha.
Primer 19
Često se dešava da je potrebno određeni kod izvršiti više puta. Da bi se ovo postiglo, bez suvišnog kucanja, koriste se petlje. U PHP – u se koriste sledeće petlje:
programski kod koji se izvršava;
Primer 29 :
Primer while naredbe
php
Kao što je poznato, u nizovima se čuvaju vrednosti elemenata koji su istog tipa i koji su slični na neki način. Ti elementi se zovu elementi niza i svaki element ima svoj jedinstven ID ( Identifier ) i može mu se lako pristupiti. Postoje tri tipa nizova:
Element niza može pripadatai bilo kom tipu podataka, bez obzira na ostale elemente.
U PHP – u, numerički nizovi se mogu kreirati na dva načina:
$niz=array(); $niz[0]=”Marko”; $niz[1]=”Petar”; $niz[2]=”Srdjan”; $niz[3]=”Djura”;
Primer 32
Primer numerickih nizova
Kod asocijativnih nizova ( associative arrays ), svaki ID ključ je asociran sa određenom vrednošću. U PHP – u, asocijativni nizovi se mogu kreirati na dva načina:
$niz=array(); $niz[“Marko”]=32; $niz[“Petar”]=28;
$niz[“Srdjan”]=20; $niz[“Zdravko”]=56;
Primer 33: Primer asocijativnih nizova:
Primer asocijativnih nizova
"crvena","kruska"=>"zuta","tresnja"=>"crvena","pomorandza"=>"nar andzasta"); echo $niz["jabuka"]; // rezultat ce biti crvena echo ""; // prelazak u novi red uz pomoc HTML koda echo $niz["pomorandza"]; // rezultat ce biti narandzasta ?>
Kod multidimenzionih nizova, svaki element može da bude nov niz i svaki element pod – niza takođe može da bude niz itd.
Primer 34 : Primer multidimenzionih nizova:
Primer multidimenzionih nizova
array ( "Marko", "Pedja", "Marina" ), "Petrovic"=>array ( "Milena", "Marko", "Jovana" ), "Stankovic"=>array ( "Petar", "Jasmina", "Milica", "Isidora" ) ); echo $porodice["Jovanovic"][1]. " ". "je clan porodice Jovanovic"; // ispisace se da je Pedja clan porodice Jovanovic ?>