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.
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.
Graf 1. Korištenje php-om po godinama
Slika 2. Shema php-a
1.2 Što je potrebno za korištenje php-om?
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.
Literatura:
http://php.com.hr/
www.php.hr
www.next.hr
PROCITAJ
/ PREUZMI I DRUGE SEMINARSKE RADOVE IZ OBLASTI:
|
|
preuzmi seminarski
rad u wordu » » »
Besplatni Seminarski
Radovi
SEMINARSKI RAD
|