POCETNA STRANA

 
SEMINARSKI RAD IZ PROGRAMIRANJA
 

Php programski jezik

1. Što je php programski jezik?

PHP je open source server-side skriptni jezik koji služi za programiranje dinamičkih web stranica; što znači da se ima slobodan pristup izvornom kodu koji se može koristiti, mijenjati i dalje distribuirati, potpuno besplatno. Kôd se može implementirati u HTML datoteku ili se može samostalno izvršavati kao binary.

Php programski jezik

Slika 1. Logo

PHP je jedna od najnaprednijih i najkorištenijih server-side skriptnih tehnologija danas u upotrebi. On je svojom sintaksom sličan mnogim drugim sličnim jezicima, čak i ima istoznačne (iste po sintaksi i funkcionalnosti) funkcije kao i neki drugi jezici kao što su C ili Perl. To znači da jednu radnju možete izvesti korištenjem više različitih funkcija.


PHP naravno nije jedini specijalizirani programski jezik za izradu web aplikacija. Osim njega postoje i :

* JSP - Sun-ova inačica Jave za izradu web aplikacija
* ASP - razvijen od strane Microsofta
* CFM - "ColdFusion" tvrtke Adobe



Povijest php programskog jezika – kako je nastao?


PHP je nastao iz PHP/FI kojeg je 1995. godine napravio Rasmus Lerdorf, kombinirajući Perl skripte na svojim osobnim web stranicama. Taj softver je nazvao 'Personal Home Page Tools / Forms Interpreter'. S vremenom je na to dodavao neke funkcije iz programskog jezika C za komunikaciju s bazama podataka i publiciranje dinamičkih web stranica. Rasmus je javno objavio kôd svog PHP/FI da bi ga svi mogli koristiti, ali i ako žele sudjelovati u budućem razvoju i poboljšanju.

PHP/FI je od početka imao neke od osnovnih funkcionalnosti PHP-a kojeg poznajemo dan danas. Koristio je varijable na način Perla, automatsko interperetiranje varijabli primljenih iz HTTP formi i omogućavao uključivanje HTML sintakse. Sintaksa mu je bila jako slična Perl-u, uz nešto ograničenja i pojednostavljenja, ali i sa dosta nekonzistetnosti.

Godine 1997. pojavilo se drugo izdanje PHP/FI-a - verzija 2.0, napisano u C-u. Tada ga je koristila grupa od nekoliko tisuća ljudi širom svijeta na oko 50,000 sajtova, što je otprilike bilo oko 1% Internet domena u tom trenutku. Iako je već nekoliko ljudi intenzivno sudjelovalo u razvoju, to je i dalje bio uglavnom one-man projekt. PHP/FI 2.0 je službeno izdan u studenom 1997. godine, nakon što je dugo bio u beta izdanju.

PHP 3 je prvo izdanje koje sliči na ovo današnje, a stvorio ga je dvojac - Andi Gutmans i Zeev Suraski 1997. godine prepisujući kompletni PHP/FI 2.0 jer ih nije zadovoljavao u razvoju njihovih e-commerce web aplikacija. Andi, Rasmus i Zeev odlučili su surađivati u zajedničkom razvoju PHP 3.0 kao službenog nasljednika PHP/FI 2.0. Tako je nastao novi programski jezik nazvan 'PHP' što je danas skraćenica od 'Hipertekst Preprocesor'.

Jedna od najvećih kvaliteta PHP 3.0 je bila mogućnost dodavanja novih funkcionalnosti (proširenja). Ključ uspjeha PHP 3.0 je, dakle, bila mogućnost modularnih proširenja, objektno orjetirana sintaksa i primjenjivost za web programiranje.

Stabilna verzija PHP 3.0 je službeno izdana u lipnju 1998. godine, nakon otprilike 9 mjeseci testiranja. Tijekom 1998. godine, PHP se širi na desetke tisuća korisnika i stotine tisuća web poslužitelja zauzimajući pri tome udio od oko 10% svih Internet poslužitelja.

Od zime 1998., Gutmans i Zeev Suraski su počeli rad na rekonstrukciji jezgre PHP-a. Ciljevi su bili poboljšati karakteristike kompleksnih aplikacija i još više povećati
modularnost PHP-a.

Novi PHP interpreter, nazvan 'Zend Engine' (od Zeev and Andi), postigao je zadane ciljeve i predstavljen je prvi put sredinom 1999. PHP 4.0, baziran na ovom interpreteru sa novim proširenjima izdan je službeno u svibnju 2000, skoro dvije godine nakon pojave PHP 3.
Osim poboljšanja jezgra i novih ekstenzija, značajne novosti su bile podrška za još više web poslužitelja, HTTP sesije, output buffering i sigurniji način rukovanja korisničkim podacima.

PHP 4 verziju PHP-a koriste stotine tisuća programera na skoro 10 milijuna web poslužitelja, odnosno nalazi se na preko 20% Internet domena.

Izašla je i nova verzija PHP-a (PHP 5) koja je u potpunosti stabilna. Dolazi sa još više modula za podršku raznim novim tehnologijama (npr. XML), te će omogućava potpuno objekno orjentirano programiranje (prema uzoru na Javu).

Procjena je da danas PHP koristi više od 16 milijuna domena.

Korištenje php-om po godinama
Graf 1. Korištenje php-om po godinama

 

Shema php-a

Slika 2. Shema php-a

1.2 Što je potrebno za korištenje php-om?

 

Instaliranje programa
Slika 3. Instaliranje programa



Potrebno je prvo instalirati program na svoje računalo.

Tipovi instalacije:

Najviša na popisu je instalacija pomoću source kodova.

Druga, puno prihvatljivija i preporučena je instalacija putem InstallShielda. Ovo je čarobnjak koji će vas provesti kroz cijeli proces instalacije i ukoliko pratite upute nećete naići na nikakve probleme. Tijekom čarobnjaka možete izabrati standardnu ili naprednu instalaciju. U standardnoj vas čarobnjak neće previše gnjaviti sa pitanjima i instalirat će PHP na IIS ili PWS server bez problema. U naprednoj instalaciji možete sami izabrati neke osobine PHp-a. Čarobnjak će automatski konfigurirati vaš serverski software i namjestit će php.ini file koji je potreban za funkcioniranje PHP-a u vaš system root direktorij. Oba tipa su provjerena i rezultat je garantiran tako da ovdje neću ulaziti u detalje.
Treći tip instalacije je putem zip arhive. Ovo je najmoćniji tip instalacije. Njime možete instalirati neke dodatne ekstenzije kao što su GD library (za manipulaciju grafičkih dokumenata) i slične module. Popis ekstenzija koje se nalaze u arhivi naći ćete na službenom siteu PHP-a na dijelu koji objašnjava instalaciju na Win operacijskom sistemu.

2. Prelaženje iz PHP u HTML mode

Vrlo bitna karakteristika PHP-a i bilo kojeg drugog jezika je razdvajanje server side koda od statičkog HTML-a. Tako u PHP-u korištenjem <? I ?> govorimo serveru da se između njih nalazi PHP kod i da je potrebno prvo njega izvršiti i tek nakon toga poslati HTML output tog koda skupa sa ostatkom statičkog HTML koda klijentu. Ovo je osnova server-client mrežne komunikacije putem TCP/IP protokola.
Unutar koda se možemo u bilo kojem trenutku prebaciti iz HTML moda u PHP mode. Čak i unutar if, for i ostalih kontrolnih struktura. Ovo nam omogućuje rad sa templateima u kojima se na isti način prikazuju različiti podatci iste strukture.

Primjer 1.

<html>

<head>

<title>Untitled</title>

</head>

<body>

<?

$ime="Marko";

$prezime="Markic";

?>

<table width="300" border="1" cellspacing="0" cellpadding="0">

<tr>

<td>

<?

echo $ime;

?>

</td>

<td><?=$ime?></td>

</tr>

</table>

</body>

</html>


Rezultat gornjeg koda bi izgledao


Marko Markić


Unutar <? i ?> se nalazi php kod koji će se izvršiti ukoliko se u njemu ne nalaze neke sintaktičke pogreške. Druga metoda ispisa je izgledala ovako :

<?=$prezime?>


Ovu metodu koristimo kada želimo ispisati neku varijablu ili string. Ova linija je identična

<? echo $prezime ?>


samo što smo umjesto echo naredbe koristili znak = koji PHP-u govori da ispiše ono što se nalazi između <? i ?> kvačica

3. Varijable

Varijable prije svog imena obavezno moraju sadržavati znak $. To je način govorenja PHP prevoditelju da se radi o varijabli a ne o tekstu. Ukoliko se izostavi aplikacija će javiti grešku ili, u najgorem slučaju, preći preko nje i umjesto sadržaja varijable će ispisati samo njeno ime.
U imenima varijabli ne smiju se koristiti razmaci niti bilo kakvi znakovi osim [ i ] koji se koriste u nizovima i kod nekih metoda rada sa stringovima. Svi ostali znakovi su zabranjeni u imenima varijabli. Isto tako, ime varijable ne smije početi sa brojem, ali ga može sadržavati na bilo kojoj drugoj poziciji u imenu.
U PHP-u se varijable automatski brišu iz memorije kada se trenutna skripta koja ih je stvorila završi. Ukoliko se stvarno želi obrisati neka varijabla iz bilo kojeg razloga to se može učiniti pomoću unset ($varijabla) naredbe-

Validna imena varijabli

$str_ime | $varijabla2 | $niz[1] | $string[0]

Nevalidna imena varijabli

$2varijabla | $var*ijabla | $_var | $var(1)

 


4. 1. Prebacivanje tipova varijabli

Sadržaj bilo koje varijable podložan je izmjeni svog tipa. Znači da nekakav broj može vrlo lako postati string i obratno.

Tipove se mogu mijenjati implicitno i eksplicitno

Moguće konverzije su:
• (int), (integer) – prebaci u integer
• (real), (double), (float) – prebaci u double (realni broj)
• (string) – prebaci u string
• (array) – prebaci u niz
• (object) – prebaci u objekt


4. Tipovi podataka

U PHP-u ne postoje fiksni tipovi podataka. Naime, ne mora se definirati tip varijable prije njenog korištenja i varijablu se može deklarirati bilo kada unutar skripte i pridruživati joj različite tipove podataka tokom izvođenja skripte. Isto tako može se mijenjati tip podataka neke varijable jednog te istog sadržaja.
Tipovi podataka koje podržava PHP su:


• Cijeli brojevi (integer)
• Realni brojevi (floating-point numbers )
• Tekstualni podatci (String)
• Logičke varijable
• Nizovi
• Objekti

 

5. Nizovi

PHP podržava više vrsta nizova. Tekstualne (associative) i cjelobrojne (vectors / indexed) indexima. Mogu biti jednodimenzionalni ili multidimenzionalni.
Primjer 2. primjer cjelobrojnog jednodimenzionalnog niza
<?
$arr_boje=array('plavo','žuto','zeleno');
echo $arr_boje[0]; // ispisat će 'plavo'
echo $arr_boje[2]; // ispisat će 'zeleno'
$arr_boje[3]='crveno'; // dodaje novi element u niz
$arr_boje[2]='ljubičasto'; // mijenja staru vrijednost na indexu 2 - zeleno prelazi u ljubičasto
$arr_boje[7]='roza' // indexi ne moraju slijediti kronološki redosljed
// želi li se ispisati sve elemente niza možete se služiti ovom metodom
foreach ($arr_boje as $int_kljuc => $str_vrijednost){
echo $int_kljuc . " => " . $str_vrijednost . "<br>\n";
}
?>

Rezultat :
plavo
zeleno
________________
0=> plavo
1=> žuto
2=> ljubičasto
3=> crveno
7=> roza

Primjer 3: Primjer tekstualnog (associative) niza
<?
// recimo da se želi reproducirati sadržaj hladnjaka u niz
$arr_hladnjak=array(
"jaja"=>12,
"paprika"=>6,
"maslac"=>0,
"mlijeko"=>0.5,
"salama"=>"0.2 kg - narezano",
"sir"=>"0.4 kg - u komadu"
);
echo $arr_hladnjak["salama"]."<br>\n"; // ispisalo se koliko salame ima u hladnjaku


6. Operatori


Aritmetički operatori:

 

Primjer Ime Rezultat
$a + $b Zbrajanje Zbroj od $a i $b.
$a - $b Oduzimanje Razlika od $a i $b.
$a * $b Množenje Produkt od $a i $b.
$a / $b Dijeljenje Kvocijent od $a i $b.
$a % $b Modul
Ostatak dijeljenja od $a i $b.




Logički operatori:

 

$a and $b I True ako su oboje $a i $b true.
$a or $b Ili
True ako je $a true ili ako je $b true.
$a xor $b Xor ako je $a true ili ako je $b true, ali ne i ako su oba true.
! $a Ne True ako je $a false i obrnuto.
$a && $b I True ako su oboje $a i $b true.
$a || $b Ili True ako je $a true ili ako je $b true.

 

Operatori uspoređivanja

 

Primjer Ime Rezultat
$a == $b Jednako True ako je $a jednako $b.
$a === $b Identično True ako je $a jednako $b, i ako su istog tipa.
$a != $b Nije jedanko True ako $a nije jednako $b.
$a !== $b Nije identično True ako $a nije jednako $b, i ako nisu istog tipa.
$a < $b Manje True ako je $a izričito manje od $b.
$a > $b Veće True ako je $izričito veće od $b.
$a <= $b Manje jednako True ako je $a manje ili jednako $b.
$a >= $b Veće jednako True ako je $a veće ili jednako $b.


Operatori uvećavanja i smanjivanja

 

Primjer Ime Efekt
++$a Preduvećavanje Uveća $a za jedan, i onda vrati $a.
$a++ Naknadno uvećanje Vrati $a, i onda ga uveća za jedan.
--$a Predsmanjenje Umanji $a za jedan, i onda vrati $a.
$a-- Naknadno smanjenje Vrati $a, i onda ga umanji za jedan.

 


7. Kontrolne strukture

 

Pomoću kontrolnih struktura određujemo tok skripti, odlučujemo i računamo. One su zadužene za logiku aplikacija.

7.1 If.. else petlja


If.. else je najčešće korištena kontrolna struktura. Njoj dajemo logički izraz koji se provjerava i ovisno o njegovom ishodu koji može biti true ili false izvršava se blok naredbi.
<?
If ( uvjet ) {
// naredbe koje se izvršavaju ukoliko je uvjet == true
} else {
// naredbe koje se izvršavaju ukoliko je uvjet == false
}
?>
Vitičaste zagrade ( {} ) označavaju blok naredbi. Njih možete izostaviti ukoliko grana ima samo jednu naredbu. Npr
Umjesto else ključne riječi može se koristiti i elseif ključna riječ. Ona se izvršava ako je uvjet u if-u rezultirao false. Ona također ispituje logički izraz.

<?
If ( uvjet ) {
// naredbe koje se izvršavaju ukoliko je uvjet == true
} elseif ( uvjet2 ) {
// naredbe koje se izvršavaju ukoliko je uvjet == false i uvjet2==true
} elseif ( uvjet3 ) {
// naredbe koje se izvršavaju ukoliko je uvjet == false i uvjet2 == false i uvjet3 == true
} else {
// naredbe koje se izvršavaju ukoliko su svi uvjeti == false
}
?>

 

7.2. While petlja


While petlja izvršava svoj blok naredbi dokle god je izraz u uvjetu istinit (true). Uvjet se ispituje prije izvođenja bloka naredbi. Zbog toga je moguće da se blok ne izvrši niti jednom ukoliko je uvjet na početku false.
<?
while ( uvjet ) {
// naredbe koje se izvršavaju dok je uvjet true
}
?>

Primjer 4.
<?
$int_var=10;
while ($int_var<=20){
echo '$int_var = '. ++$int_var. "<br>";
}
// rezultira sa
// $int_var = 11
// $int_var = 12
// $int_var = 13
// $int_var = 14
// $int_var = 15
// $int_var = 16
// $int_var = 17
// $int_var = 18
// $int_var = 19
// $int_var = 20
// $int_var = 21
?>

 

7.3. Do … while


<?
do {
// naredbe koje se izvršavaju dok je uvjet true
} while ( uvjet )

?>

7.4. For petlja


For petlja koristi brojač petlje koji se prije svakog izvršavanja bloka naredbi petlje uveća ili smanji. For petlju koristite kada znate točan broj potrebnog ponavljanja bloka petlje. Brojač petlje može biti bilo koja već postojeća varijabla ili možete stvoriti novu varijablu za potrebe petlje. Ukoliko se rabi drugi tip uobičajena imena takvih varijabli su $i, $j, $k.
<?
for ($i=0;$i (operator uspuređivanja) (vrijednost sa kojom uspoređujete); (operator uvećanja ili smanjenja){
// naredbe koje se izvrašavaju svki put dok je uvijet jednak true
}
?>


Primjer 5.
for ($i=10;$i>=0;$i--){
echo '$i = ' . $i . '<br>';
}
// što rezultira
// $i = 10
// $i = 9
// $i = 8
// $i = 7
// $i = 6
// $i = 5
// $i = 4
// $i = 3
// $i = 2
// $i = 1
// $i = 0

7.5. Foreach petlja

Foreach petlja se koristi za rad sa nizovima. Ona prolazi kroz svaki element danog niza i obavlja blok naredbi. Može spremiti ključ i vrijednost svakog elementa niza u posebne varijable u kojim se za svako ponavljanje petlje nalaze ključ i vrijednost elementa niza na kojem se trenutno nalazi nutarnji pokazivač. Nutarnji pokazivač se prije ulaska u petlju nalazi na 0 i svakim novim krugom u petlji povećava se za 1. Novim zvanjem foreach petlje nutarnji pokazivač se resetira. Petlja se vrti sve dok ne ostane bez elemenata niza.

<?
// općenito
foreach ($neki_niz as $vrijednost){
// naredbe koje se izvršavaju za svaki element niza
}
// ili
foreach ($neki niz as $kljuc => $vrijednost){
// naredbe koje se izvršavaju za svaki element niza
}
Primjer 6.
$arr_hladnjak=array(
"jaja"=>12,
"paprika"=>6,
"maslac"=>0,
"mlijeko"=>0.5,
"salama"=>"0.2 kg - narezano",
"sir"=>"0.4 kg - u komadu"
);
foreach ($arr_hladnjak as $kljuc => $vrijednost){
echo "$kljuc => $vrijednost <br>";
}
// rezultira
// jaja => 12
// paprika => 6
// maslac => 0
// mlijeko => 0.5
// salama => 0.2 kg - narezano
// sir => 0.4 kg - u komadu


Zašto je PHP tako popularan ?


Ono što PHP stavlja još više ispred ostalih web skriptnih tehnologija je njegova podrška za baratanje širokom paletom baza podataka. Podržava sve popularnije baze podatak kao MySQL, PostgreSQL, dBase, Oracle, ODBC…
Isto tako njegova neovisnost o operacijskom sustavu i pristupačne cijene (besplatan je) ga čini među prvim izborom velikih i malih kompanija za izradu vlastitih mrežnih sustava.

Neke od karakteristika :

  • PHP je besplatan
  • Jednostavan za učenje
  • neovisan o OS-u i web poslužitelju
  • pravi programski jezik (nema tagova)
  • stabilan je
  • brz je
  • PHP je open source
  • omogućava jednostavnu komunikaciju s ostalim programima i protokolima
  • podržava ekstenzije

Jedna od velikih prednosti PHP-a nad ostalim jezicima je ta što podržava gotovo sve najkorištenije baze podataka; trenutačno moguće je koristiti slijedeće baze podataka:

Adabas D
Ingres
Oracle (OCI7 and OCI8)
dBase
InterBase
Ovrimos
Empress
FrontBase
PostgreSQL
FilePro (read-only)
mSQL
Solid
Hyperwave
Direct MS-SQL
Sybase
IBM DB2
MySQL
Velocis
Informix
ODBC
Unix dbm


• PHP podržava i ODBC (Open Database Connectivity) standard pa je moguće raditi s bilo kojom bazom podataka koja podržava taj standrad
• podržana je i komunikacija s ostalim servisima korištenjem protokola kao što su LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM(Windows) i mnogi drugi
• PHP podržava WDDX razmjenu kompleksnih podataka sa svim ostalim programskim jezicima za Web; moguće je koristiti i Java objekte kao svoje te ostale remote objekte putem CORBA ekstenzija (Common Object Request Broker Architecture) koje omogućuju komunikaciju s distribuiranim OO aplikacijama neovisno o OS-u ili hardverskoj podršci
• PHP podržava XML (eXtensible Markup Language)
• ako se koristi za izradu e-bussines web siteova mogu se upotrijebiti Cybercash Payment, CyberMUT, VeriSign Payflow Pro i CCVS funkcije
postoje još mnoge podrške za različite namjene

No osim brojnih prednosti ovaj jezik ima i neke nedostatke:

- u PHP-u deklaracija varijabli nije obavezna, što može biti izvor raznih grešaka i sigurnosnih propusta
- ugrađene funkcije nisu dosljedne po pitanju njihovog nazivlja ni po pitanju redosljeda argumenata među sličnim funkcijama (primjer nazivanja: strip_tags i html_entity_decode nasuprot stripslashes, htmlentities)
- funkcije nisu dosljedne u vraćanju rezultata - false, ali mogu vratiti i 0 ili ""
- broj ugrađenih funkcija je velik (preko 3000) pa to otežava razvoj pogotovo jer dijele isti namespace
- opcija "magic quotes" koja dodaje backslasheve u stringove se može uključiti ili isključiti u konfiguraciji pa kad se programeri oslanjaju na nju može biti problema na sistemima gdje je isključena
- opcija "register_globals" automatski kreira varijable iz obrazaca pa to može postati sigurnosni rizik
- konfigurabilnost PHP-a koja je istovremeno i prednost i nedostatak jer jedna skripte na jednom serveru može raditi dok na dugom ne
- Stabilnost PHP-a mnogo ovisi o vanjskim bibliotekama funkcija

PHP je odnio pobjedu za 2004-u godinu kao najpopularniji programski jezik. Tvrtka Tiobe Software objavila je rezultate (slika 3)najpopularnijih tražilica na internetu, Google-a, MSN-a i Yahoo!-a po kojima je php uvjerljivo ispred svih ostalih.

TIOBE Programming Community pokazuje popularnost pojedinog programskog jezika. Nije riječ o izboru najboljeg programskog jezika ili jezika u kojem je najviše linija koda napisano već jednostavno prikaz popularnosti pojedinog.

Slika 3.

Php


Literatura:

http://php.com.hr/
www.php.hr
www.next.hr

PROCITAJ / PREUZMI I DRUGE SEMINARSKE RADOVE IZ OBLASTI:
ASTRONOMIJA | BANKARSTVO I MONETARNA EKONOMIJA | BIOLOGIJA | EKONOMIJA | ELEKTRONIKA | ELEKTRONSKO POSLOVANJE | EKOLOGIJA - EKOLOŠKI MENADŽMENT | FILOZOFIJA | FINANSIJE |  FINANSIJSKA TRŽIŠTA I BERZANSKI    MENADŽMENT | FINANSIJSKI MENADŽMENT | FISKALNA EKONOMIJA | FIZIKA | GEOGRAFIJA | INFORMACIONI SISTEMI | INFORMATIKA | INTERNET - WEB | ISTORIJA | JAVNE FINANSIJE | KOMUNIKOLOGIJA - KOMUNIKACIJE | KRIMINOLOGIJA | KNJIŽEVNOST I JEZIK | LOGISTIKA | LOGOPEDIJA | LJUDSKI RESURSI | MAKROEKONOMIJA | MARKETING | MATEMATIKA | MEDICINA | MEDJUNARODNA EKONOMIJA | MENADŽMENT | MIKROEKONOMIJA | MULTIMEDIJA | ODNOSI SA JAVNOŠCU |  OPERATIVNI I STRATEGIJSKI    MENADŽMENT | OSNOVI MENADŽMENTA | OSNOVI EKONOMIJE | OSIGURANJE | PARAPSIHOLOGIJA | PEDAGOGIJA | POLITICKE NAUKE | POLJOPRIVREDA | POSLOVNA EKONOMIJA | POSLOVNA ETIKA | PRAVO | PRAVO EVROPSKE UNIJE | PREDUZETNIŠTVO | PRIVREDNI SISTEMI | PROIZVODNI I USLUŽNI MENADŽMENT | PROGRAMIRANJE | PSIHOLOGIJA | PSIHIJATRIJA / PSIHOPATOLOGIJA | RACUNOVODSTVO | RELIGIJA | SOCIOLOGIJA |  SPOLJNOTRGOVINSKO I DEVIZNO POSLOVANJE | SPORT - MENADŽMENT U SPORTU | STATISTIKA | TEHNOLOŠKI SISTEMI | TURIZMOLOGIJA | UPRAVLJANJE KVALITETOM | UPRAVLJANJE PROMENAMA | VETERINA | ŽURNALISTIKA - NOVINARSTVO


preuzmi seminarski rad u wordu » » »   

Besplatni Seminarski Radovi

SEMINARSKI RAD