Osnove Programskog Jezika PHP
description
Transcript of Osnove Programskog Jezika PHP
-
FAKULTET STROJARSTVA I BRODOGRADNJE ZAGREB
OSNOVE PROGRAMSKOG JEZIKA PHP
- semestralni rad -
Prof. Mario Essert Damir Robeli 35951063 Zagreb, 26. 10. 2002
-
Osnove programskog jezika PHP________________________________________________________
Sadraj 1. Uvod...........................................................................................................................3
2. to je PHP? ................................................................................................................4
3. Sintaksa PHP-a...........................................................................................................5 3.1 Varijable ..............................................................................................................5
Prebacivanje tipova varijabli ..............................................................................5 3.2 Komentari............................................................................................................6 3.3 Tipovi podataka...................................................................................................7
Cijeli brojevi .......................................................................................................7 Realni brojevi .....................................................................................................7 Tekstualni podaci................................................................................................8 Nizovi .................................................................................................................9 Objekti ..............................................................................................................11
3.4 Operatori ...........................................................................................................11 3.5 Kontrolne strukture ...........................................................................................13
If.. else ..............................................................................................................13 Elseif.................................................................................................................14 Switch ...............................................................................................................14 While petlja ......................................................................................................15 Do while ......................................................................................................16 For petlja...........................................................................................................16 Foreach petlja ...................................................................................................17
3.6 Forme i prihvat informacija iz forme ................................................................18
4. Rad s bazama podataka............................................................................................19 4.1 MySQL..............................................................................................................19
5. PHP funkcije ............................................................................................................20 5.1 Array Funkcije ..................................................................................................20 5.2 Datum i Vrijeme................................................................................................22 5.3 Direktorijske Funkcije.......................................................................................24 5.4 File Funkcije......................................................................................................25 5.5 FTP Funkcije.....................................................................................................27 5.6 MySQL Funkcije...............................................................................................28 5.7 Regularni Izrazi .................................................................................................29 5.8 String Funkcije ..................................................................................................30 5.9 Varijable ............................................................................................................31
6. Prilog (PHP_uionica) ..........................................................................................33 6.1 Nain koritenje ................................................................................................33 6.2 Nain rada .........................................................................................................34
7. Zakljuak..................................................................................................................35 8. Literatura..................................................................................................................35
_______________________________________________________________________________ FSB - Zagreb 2
-
Osnove programskog jezika PHP________________________________________________________
1. Uvod
Kao pripremu za diplomski rad, kojeg sam odluio napraviti u programskom jeziku PHP, dobio sam zadatak sastaviti kratak tutorijal o PHP-u. Cilj ovog rada je stjecanje potrebnog predznanja koje e mi pomoi pri izradi diplomskog rada.
Zato odabrati ba PHP? PHP je jedna od najnaprednijih i najkoritenijih
server-side skriptnih tehnologija danas u upotrebi. On je po svojoj sintaksi poput mnogih drugih slinih jezika, ak i koristi funkcije nekih drugih jezika kao to su C ili Perl. To znai da jednu radnju moete izvesti koritenjem vie razliitih funkcija. Npr. ova dva primjera rezultiraju istim prikazom:
Primjer:
Jo jedna vana stvar, PHP je bogat funkcijama za manipuliranje mnogo razliitih tipova sadraja. Npr. moemo kreirati slike ili flasheve u trenutku kada ih korisnik zatrai na vaoj web stranici ali ostavimo to za sad naprednim korisnicima.
_______________________________________________________________________________ FSB - Zagreb 3
-
Osnove programskog jezika PHP________________________________________________________
2. to je PHP?
PHP je open-source server-side skriptni jezik za dinamiko generiranje HTML koda, zapravo to je skraenica od Hypertext Preprocesor. Drugim rijeima, PHP je skriptni jezik pomou kojeg moete kreirati HTML stranicu na serveru prije nego to se ona, popunjena dinamikim sadrajem, poalje klijentu. Ovim nainom generiranja sadraja klijent ne moe vidjeti kod (skriptu) koji je generirao sadraj koji gleda, ve ima pristup istom HTML kodu.
Vrlo jednostavno, PHP je jedan od najpopularnijih i najmonijih skriptnih jezika trenutno na tritu. Broj siteova koji koriste PHP raste iz dana u dan, a broj tvrtki koje ele primijeniti PHP na svojim siteovima je jo vei. PHP je izvrstan jer pomou njega s nevjerojatnom lakoom moete stvoriti opirnu web aplikaciju s velikim koliinama podataka.
Zamislite samo koliko biste se namuili u HTML-u kada biste na webu trebali prezentirati paletu proizvoda neke firme. Uzmimo da dotina firma ima u svom asortimanu oko 1000 proizvoda. To znai da biste morali napraviti 1000 stranica (za svaki proizvod posebnu) i paziti da svaka stranica izgleda isto (da su tablice poravnane, da su naslovi iste veliine i boje). Ovo bi bio vrlo mukotrpan i stresan posao. Ako biste eljeli omoguiti svojim posjetiteljima vrlo jednostavno pretraivanje asortimana proizvoda, ovaj zadatak bi postao praktiki neizvediv! Isti ovakav site moete napraviti u duplo kraem roku sa trostruko veom funkcionalnou, s potpuno besplatnim alatom u vaem omiljenom tekstualnom editoru.
Open-source u gornjoj definiciji znai da svatko tko eli moe skinuti izvorne
PHP kodove pisane u C-u i, ukoliko ih razumije, moe ih mijenjati po svojoj volji te dodavati nove funkcije PHP-u. tovie, svi su pozvani da sudjeluju u razvoju novih verzija PHP-a. Izvorne kodove i instalacijske datoteke moete skinuti sa slubenog PHP sitea.
Ono to PHP stavlja jo vie ispred ostalih web skriptnih tehnologija je njegova podrka za baratanje irokom paletom baza podataka. Podrava sve popularnije baze podataka kao to su MySQL, PostgreSQL, dBase, Oracle, ODBC
_______________________________________________________________________________ FSB - Zagreb 4
-
Osnove programskog jezika PHP________________________________________________________
3. Sintaksa PHP-a
Ve smo u uvodu mogli vidjeti neke bitne stvari, npr. da se sav PHP kod nalazi izmeu kvaica. Mali dodatak ovom pravilu bilo bi koritenje kvaica radi razlikovanja izmeu PHP i XML koda (XML koristi iste ove kvaice). Druga stvar koja je oita iz prijanjih primjera je da varijable prije svog imena imaju znak $. To je ujedno i prva tema koje emo se dotaknuti. 3.1 Varijable
Ve smo spomenuli, varijable prije svog imena obavezno moraju sadravati znak $. Tako PHP govori prevoditelju da se radi o varijabli, a ne o tekstu. Ukoliko izostavite znak $, aplikacija e javiti greku (u najboljem sluaju) ili e prijei preko nje (u najgorem sluaju) i umjesto sadraja varijable ispisati samo njeno ime.
Jo jedna vrlo bitna stvar kod varijabli u PHP-u je da su imena varijabli case-sensitive. To znai da program razlikuje velika i mala slova, evo jednog malog primjera za ilustraciju:
"$mojeime" nije isto to i "$MojeIme"
Isto tako, u imenima varijabli ne smijete koristiti razmake niti bilo kakve
znakove osim [ i ] (koji se koriste u nizovima i kod nekih metoda rada sa stringovima) te znaka '_'. Svi ostali znakovi su zabranjeni u imenima varijabli. Isto tako, ime varijable ne smije poeti s brojem, ali ga moe sadravati na bilo kojoj drugoj poziciji u imenu. Kod imenovanje varijabli preporuka je drati se sljedeeg nepisanog pravila. Na prvom mjestu imena se nalazi opis tipa varijable od tri znaka. Nakon njega odvojeno sa '_' slijedi ime varijable koje bi trebalo poblie opisati ime sadraj same varijable. Ime se obino sastoji od jedne ili dvije rijei koje poblie opisuju sadraj varijable. Rijei moete odvajati sa znakom '_' ili svako poetno slovo rijei moete napisati velikim slovom.
Pridravanjem ovih pravila inite uslugu sebi jednako koliko i ostalima koji e jednog dana pokuati proitati i razumjeti vae kodove.
Pokuajte si zamisliti ovaj primjer : Otvorite vau aplikaciju na kojoj ste radili prije godinu dana. Pred vama se sada nalazi hrpa slova i znakova, ako niste vodili rauna o oznaavanju i izboru imena varijabli (npr. $prva, $druga, $post, $mail, $ime) koja vam vie nemaju nekakvo znaenje. Sada morate cijelu aplikaciju ponovo proraditi da bi mogli napraviti tek malu promjenu. Vrlo jednostavnom upotrebom standarda pri imenovanju varijabli i estim komentiranjem koda ovih problema ne bi bilo. Zamislite samo da je netko drugi otvorio takve kodove. Trebalo bi mu par dana da shvati to koji red izvrava i to se nalazi u kojoj varijabli u odreenom trenutku. Stoga, pomognite sebi i drugima i piite kodove sa komentarima i standardiziranim imenima varijabli. Vrijedno je truda.
Prebacivanje tipova varijabli
Sadraj bilo koje varijable podloan je izmjeni svog tipa. Znai da nekakav broj moe vrlo lako postati string i obratno. Tipove moete mijenjati implicitno i eksplicitno (u slijedeim primjerima neemo se pridravati gore navedenih pravila imenovanja varijabli).
_______________________________________________________________________________ FSB - Zagreb 5
-
Osnove programskog jezika PHP________________________________________________________
Primjer:
Eksplicitna izmjena tipa varijable vri se tako da u neku novu varijablu
pridruite neku ve postojeu varijablu i ispred nje navedete u zagradama tip u koji elimo prebaciti varijablu koju pridruujete. Isto tako moete u varijablu pridruiti nju samu s eksplicitnom izmjenom tipa podatka.
Primjer:
Mogue 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 3.2 Komentari PHP podrava vie tipova komentara. U dosadanjem tekstu koristili smo inline komentare ( // komentar ). Oni preskau sav tekst koji se nalazi iza njih sve do poetka novog reda. Komentirati moemo kad na poetak reda stavimo znak "#"elite li komentirati vie redova koristite se multiline komentarima.
Primjer:
_______________________________________________________________________________ FSB - Zagreb 6
-
Osnove programskog jezika PHP________________________________________________________
3.3 Tipovi podataka
U PHP-u ne postoje fiksni tipovi podataka varijabli. Naime, ne morate definirati tip varijable prije njenog koritenja - varijablu moete deklarirati bilo kada unutar skripte i pridruivati joj razliite tipove podataka tokom izvoenja skripte. Isto tako moete mijenjati tip podataka neke varijable jednog te istog sadraja, ali o tome par redaka kasnije. Tipovi podataka koje podrava PHP su:
Cijeli brojevi (integer) Realni brojevi (floating-point numbers) Tekstualni podaci (String) Nizovi Objekti
U sljedeim primjerima koristit u neke funkcije koje e vam moda biti
nepoznate i nee vam odmah biti jasno emu one slue. Zanemarite ih i pokuajte shvatiti primjere to bolje moete. Sve funkcije e biti detaljnije objanjene malo kasnije kad emo priati o kontrolnim strukturama i slinim stvarima. Cijeli brojevi
U ovaj tip varijable moemo pohraniti pozitivne i negativne brojeve u rasponu od -2147483648 do 2147483647 tj. 32 bita podataka. Moemo ih zapisati u decimalnom, oktalnom ili heksadecimalnom zapisu. Par primjera:
Primjer: $int_var=123; //pozitivan decimalni broj $int_var=-123; //negativni decimalni broj $int_var=0123; //oktalni broj $int_var=0#123; //heksadecimalni broj
-probajte ispisati varijable dodavi naredbu "echo" Realni brojevi Postoje dva naina spremanja realnih brojeva:
Primjer: $dbl_var=0.123; // ili $dbl_var=1.123e8;
Budite paljivi kada koristite realne brojeve. Naime, njihova tonost nije
garantirana (zbog pretvaranja ovog broja u njegov binarni ekvivalent - recimo 0.33333 nikada nee biti tono prebaen u binarni ekvivalent). Stoga, nemojte ih usporeivati za jednakost i vjerovati im do posljednje decimale.
_______________________________________________________________________________ FSB - Zagreb 7
-
Osnove programskog jezika PHP________________________________________________________
Tekstualni podaci
Sadraj string tipa varijable nalazi se izmeu navodnika. Moete koristiti duple i jednostruke navodnike. Postoje razlike u ispisu sadraja ovisno o tipu navodnika koje koristite.
Koritenjem duplih navodnika moete koristiti 'special characters'. To su posebni znakovi koji govore PHP-u da izvri odreene radnje pri ispisu sadraja varijable. Ako ste ikada radili u C-u ili Perlu, ve ste upoznati s ovim znakovima. To su znakovi koji slijede iza znaka backslash ( \ ). On se ujedno koristi za preskakanje odreenog znaka unutar stringa. Lista posebnih znakova
Znak Znaenje \n Novi red(LF ili 0x0A u ASCIIu) \t Tab razmak (HT ili 0x09 u ASCIIu) \\ Backslash \$ Dolar znak \" Dupli navodnik
Ovi znakovi nee imati utjecaja na izgled same stranice u prozoru browsera, ve
e njihov utjecaj biti vidljiv tek pri pregledu sourcea dokumenta. Ovime moete sasvim sakriti injenicu da je stranica stvorena putem PHP-a i pomou njih je lake pronai greku u generiranoj stranici. U protivnom bi se sav sadraj ispisao u jedan red bez razmaka. Uviate da bi bilo vrlo teko u tom neredu nai bilo to, a kamoli greku u ispisu, ako ju traite u source viewu.
Ukoliko elite da se neki tekst prebaci u novi red, pri gledanju stranice u prozoru browsera morat ete se posluiti i slinim tagovima. Znai, ako se elite koristiti PHP-om, morate se jako dobro znati sluiti HTML-om.
Jo jedan bitna razlika izmeu duplih i jednostrukih navodnika je ta da e se pri koritenju duplih navodnika sadraj varijable ispisati, a pri koritenju jednostrukih navodnika ispisat e se ime varijable skupa sa znakom $. Mali primjer e ovo dobro ilustrirati:
Primjer: // Ispisuje: moje ime je Kreso
_______________________________________________________________________________ FSB - Zagreb 8
-
Osnove programskog jezika PHP________________________________________________________
U PHP-u je takoer mogue spajanje vie stringova u jedan ispis. To radimo pomou '.' . Evo primjera:
Primjer:
Uoite da su u gornjem primjeru koriteni jednostruki navodnici, ali varijable se
ne nalaze u njima, pa e se njihov sadraj ispisati. Takoer su izostavljene zagrade, to je dozvoljeno.
Kao to sam ve spomenuo, pri radu sa stringovima moemo u njihovom imenu koristiti znakove [ i ]. Njih koristimo kada elimo izdvojiti odreeni znak iz stringa. Drugim rijeima, string zamislimo kao jednodimenzionalni numeriki niz indexiran na taj nain da se na svakom broju, poevi od 0, nalazi jedan znak stringa. Raspon indexa je od 0 do n-1; gdje je n broj znakova niza.
Primjer:
Kao to vidite, u njih moete smjestiti bilo koji izraz koji e na kraju rezultirati cijelim brojem (integerom). Nizovi PHP podrava vie vrsta nizova - tekstualne (associative) i cjelobrojne (vectors / indexed). Mogu biti jednodimenzionalni ili multidimenzionalni. Primjer cjelobrojnog jednodimenzionalnog niza:
Primjer:
-
Osnove programskog jezika PHP________________________________________________________
} // to e rezultirati sa // 0 => plavo // 1 => uto // 2 => ljubiasto // 3 => crveno // 7 => roza ?>
Primjer:
Primjer tekstualnog (associative) niza:
Primjer:
_______________________________________________________________________________ FSB - Zagreb 10
-
Osnove programskog jezika PHP________________________________________________________
Moemo i kombinirati ova dva tipa niza:
Primjer:
Objekti Istina je - PHP podrava objektno programiranje. Dodue, ne onako kako ga podrava C++ ili slini jezici, ali svoje funkcije moete grupirati u klase te stvarati instance tog objekta kroz cijelu aplikaciju. Sve u svemu, da biste koristili objekte, prvo morate stvoriti klasu (class) s nekim funkcijama u njoj te ju pozivati unutar koda.
Primjer:
3.4 Operatori Aritmetiki operatori:
Primjer Ime Rezultat $a + $b Zbrajanje Zbroj od $a i $b $a - $b Oduzimanje Razlika od $a i $b $a * $b Mnoenje Produkt od $a i $b $a / $b Dijeljenje Kvocijent od $a i $b
$a % $b Modul Ostatak dijeljenja od $a i $b Mala napomena : Ukoliko dijelite dva broja koja su oba cjelobrojna, i kvocijent e biti cjelobrojan. Ukoliko je jedna od varijabli realnog tipa i kvocijent e biti realnog tipa.
_______________________________________________________________________________ FSB - Zagreb 11
-
Osnove programskog jezika PHP________________________________________________________
Operatori pridruivanja:
Primjer: - isto kao da smo napisali kod stringova imamo
Logiki 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
U gornjoj tablici $a ili $b mogu biti bilo koji izrazi koji vraaju true ili false kao ishod svoje operacije. Zato e sljedei primjer biti ne samo dozvoljen, ve i prijeko potreban.
Primjer:
_______________________________________________________________________________ FSB - Zagreb 12
-
Osnove programskog jezika PHP________________________________________________________
Operatori usporeivanja:
Primjer Ime Rezultat $a == $b Jednako True ako je $a jednako $b
$a === $b Identino True ako je $a jednako $b, i ako su istog tipa $a != $b Nije jednako True ako $a nije jednako $b
$a !== $b Nije identino True ako $a nije jednako $b, i ako nisu istog tipa $a < $b Manje True ako je $a izriito manje od $b $a > $b Vee True ako je $a izriito vee od $b
$a = $b Vee jednako True ako je $a vee ili jednako $b
Budite paljivi pri traenju jednakosti dvije varijable da ne upiete $a=$b umjesto $a ==$b . Naime, u prvom sluaju izraz e vratiti true ako uspjeno pridrui sadraj varijable $b varijabli $a, a u drugom sluaju e vratiti true ako su jednake. Operatori uveavanja i smanjivanja:
Primjer Ime Efekt
++$a Preduveavanje Uvea $a za jedan, i onda vrati $a
$a++ Naknadno uveanje Vrati $a, i onda ga uvea za jedan
--$a Predsmanjenje Umanji $a za jedan, i onda vrati $a
$a-- Naknadno smanjenje Vrati $a, i onda ga umanji za jedan
3.5 Kontrolne strukture Pomou kontrolnih struktura odreujemo tok skripti, odluujemo i raunamo. One su zaduene za logiku aplikacija. If.. else If.. else je najee koritena kontrolna struktura. Njoj dajemo logiki izraz koji se provjerava i ovisno o njegovom ishodu koji moe biti true ili false izvrava se blok naredbi.
_______________________________________________________________________________ FSB - Zagreb 13
-
Osnove programskog jezika PHP________________________________________________________
Primjer:
Vitiaste zagrade ( {} ) oznaavaju blok naredbi. Njih moete izostaviti ukoliko grana ima samo jednu naredbu. Npr.:
Primjer:
die() je funkcija koja prekida izvravanje skripte. Ako joj u argument date neki tekst ili broj, ispisat e ga. Takoer prima neku funkciju kao argument Elseif Umjesto else kljune rijei moe se koristiti i elseif kljuna rije. Ona se izvrava ako je uvjet u if-u rezultirao false. Ona takoer ispituje logiki izraz.
Primjer:
Switch Ukoliko pokuavamo rijeiti situaciju s mnogo moguih ishoda, nije praktino koristiti if elseif tip grananja. U tom sluaju koristite se switch strukturom. Switch uzima za argument nekakav izraz i onda gleda da li je on jednak jednom od zadanih sluaja. Ukoliko nije jednak niti jednom od njih, izvrava default akciju ili ne izvrava nita. Switch je idealan alat za izradu vienamjenskih stranica.
_______________________________________________________________________________ FSB - Zagreb 14
-
Osnove programskog jezika PHP________________________________________________________
Primjer:
Kljuna rije break oznaava zavretak grane. Ukoliko ga izostavite izmeu dvije grane, naredbe obje grane e se izvriti ukoliko je via (ona koja slijedi prije) aktivirana. Naredbe e se izvravati sve dok se ne pojavi break ili zavretak switcha.
Primjer:
While petlja While petlja izvrava svoj blok naredbi dokle god je izraz u uvjetu istinit (true). Uvjet se ispituje prije izvoenja bloka naredbi. Zbog toga je mogue da se blok ne izvri niti jednom ukoliko je uvjet na poetku false.
_______________________________________________________________________________ FSB - Zagreb 15
-
Osnove programskog jezika PHP________________________________________________________
Primjer: Evo konkretnog primjera:
Do while
Za razliku od normalne while petlje, kod Do while petlje uvjet se ispituje tek nakon izvravanja bloka naredbi. Tako je uvijek zagarantirano barem jedno izvravanje bloka naredbi iako je uvjet odmah na poetku false.
Primjer:
For petlja For petlja koristi broja petlje koji se prije svakog izvravanja bloka naredbi petlje uvea ili smanji. For petlju koristite kada znate toan broj potrebnog ponavljanja bloka petlje. Broja petlje moe biti bilo koja ve postojea varijabla ili momo stvoriti novu varijablu za potrebe petlje. Ukoliko rabite drugi tip, uobiajena imena takvih varijabli su $i, $j, $k i njih ete sresti u gotovim svim aplikacijama diljem svijeta.
_______________________________________________________________________________ FSB - Zagreb 16
-
Osnove programskog jezika PHP________________________________________________________
Primjer:
-
Osnove programskog jezika PHP________________________________________________________
3.6 Forme i prihvat informacija iz forme
Kao mali dodatak ovom dijelu nuno je spomenuti forme i prihvat podataka iz njih. Da bismo demonstrirali nain prihvata informacija iz forme, moda bi bilo potrebno rei par stvari prije samog primjera. Postoje tri vrste formi. Promotrimo sam izgled HTML forme:
Primjer:
Form tag ima tri parametra. Prvi je ime. Drugi parametar je metoda slanja
forme. O njemu ovisi hoe li podaci poslani formom biti vidljivi korisniku pri odlasku na stranicu koja obrauje formu ili ne. Naime, podaci iz forme alju se skupa sa zahtjevom za stranicu koja obrauje formu. Ukoliko koristimo method="post", informacije e biti nevidljive korisniku i do njihovih vrijednosti moete doi samo putem skripte. Ukoliko koristite method="get", informacije iz forme nalazit e se u URL-u pri otvaranju stranice koja obrauje formu. Primjer: http://www.fsb.hr/obrada.php?ime=Draen&prezime=Petrovi (Ovaj link nije stvaran i ne postoji. Nemojte ga kliknuti.) Isti ste uinak mogli dobiti ako bi negdje na stranici imali link u kojem se uz adresu stranice nalazi znak ? i ime=vrijednost. Ukoliko ih elite imati vie, odvojite dva ime=vrijednost para sa znakom &. Ovo je query string metoda. U action="" upisujete adresu stranice koja obrauje formu. Tako bi forma mogla izgledati otprilike ovako:
Primjer: Ime Prezime Spremite ovu formu u file koji nazovite forma.htm. Sada stvorite novi file i nazovite ga obrada.php. Spremite ga u isti folder kao i forma.htm. Primijetite da file koji sadri formu ne mora biti php file.
Istom ovom metodom prihvaate podatke poslane GET metodom ili pomou
query string metode.
_______________________________________________________________________________ FSB - Zagreb 18
-
Osnove programskog jezika PHP________________________________________________________
4. Rad s bazama podataka
Mogunost pristupa bazama podataka nesumnjivo je najvanije svojstvo svakog modernog programskog jezika. Znaaj pristupa bazama podataka je lei u injenici da sistem za upravljanje bazama podataka osigurava jako puno monih funkcija za rad s bazama podataka. Jezik PHP sadri bogat skup funkcija za pristup razliitim bazama podataka. Autori jezika PHP smatraju mogunost povezivanja s bazama podataka njegovim najjaim i najznaajnijim svojstvom.
Podrava sljedee sisteme za upravljanje bazama podataka:
Abadas D InteBaes Solid dBase mSQL Sybase
Empress MySQL Velocis FilePro Oracle Unix dbm
Informix PostgreSQL Microsoft SQL Server ODBC
4.1 MySQL
MySQL je odlian DBMS sistem koji ima iroku primjenu, ujedno je i baza podataka koja se najvie koristi pri radu u PHP-u. Razvijen od vedske firme TcX. Vienitni je sistem za rukovanje relacionim bazama podataka, kontrolira tko smije koristiti baze, vodi evidenciju o procesima. Baza koja se sastoji od tablica sa stupcima koji su meusobno povezani. Meusobne veze su definirane kljunim vrijednostima u stupcima. Odnosi u bazi
One-to-One One-to-Many Many-to-Many
Kao to smo ve spomenuli u uvodu prednost PHP-a pred drugim web
skriptnim tehnologijama je rad sa bazama podataka, jedna od najee koritenih je MySQL baza podataka.
_______________________________________________________________________________ FSB - Zagreb 19
-
Osnove programskog jezika PHP________________________________________________________
5. PHP funkcije
U ovom djelu obraditi emo neke od funkcija PHP-a. Funkcije su podjeljene u podgrupe i uz veinu e biti primjer da bi lake shvatili kako se odreena funkcija koristi. Grupe opisanih funkcija:
Array Funkcije Datum i Vrijeme Direktorijske Funkcije Direktorijske Funkcije File Funkcije FTP Funkcije
MySQL Funkcije Regularni Izrazi Sessions String Funkcije Varijable
5.1 Array Funkcije
Grupe funkcija za rad sa nizovima "array", kreiranje nizova, usporeivanje, brisanje i dr.
array() - kreira numerike i asocijativne arraye Format: array $array (...) Opis: Kreira numerike i asociativne arraye. Elementi su razdvojeni zarezom.
Da bi jednom elementu dodali odgovarajui index i napravili asocijativni array, koristite =>. Takoer je mogue praviti arraye u arrayu, tako da je taj novi array jedan element glavnog arraya = multidimenzionalni array.
Primjer:
Vano: Elementi u arrayu poinju s rednim brojem 0.
array_diff() - izraunava razlike izmeu arraya Format: array_diff($array1,$array2...) Opis: Izraunava razlike izmeu arraya. Kao rezultat vraa array sa
elementima iz array1 koji se ne ponavljaju u drugim arrayima.
_______________________________________________________________________________ FSB - Zagreb 20
-
Osnove programskog jezika PHP________________________________________________________
Primjer:
array_intersect() izraunava razliku izmeu arraya
Format: array_intersect($array1,$array2...) Opis: Izraunava razlike izmeu arraya. Kao rezultat vraa array sa
elementima iz array1 koji se ne ponavljaju u drugim arrayima.
Primjer:
array_keys() pokazuje sve keys iz arraya
Format: rray_keys($array[trazeni value]) Opis: Pokazuje sve keys (numerike i stringove) od datog arraya. Ako je
zadana i traena vrijednost (value), onda e biti pokazani samo keys sa tim value (vrijednostima).
Primjer:
_______________________________________________________________________________ FSB - Zagreb
21
-
Osnove programskog jezika PHP________________________________________________________
5.2 Datum i Vrijeme
Funkcije za rad sa datumima i vremenom. PHP podrava jako puno ovih funkcija, vrijeme se moe prikazivati u danima, satim, sekundama. Moe biti globalno ili lokalno i dr. Evo nekih od funkcija.
checkdate() provjerava da li je datum vaei Format: checkdate(mjesec,dan,godina) Opis: Provjerava da li je datum vaeci. Ako je, daje true kao odgovor a inae
false. Sljedei uvjeti moraju biti ispunjeni: - godina mora biti izmeu 1 i 32767 - mjesec mora biti izmeu 1 i 12 - dan mora biti vaei (npr. mjesec ne moze imati 40 dana) Prijestupne godine takoer se kontroliraju.
Primjer:
date() formatira datum i pokazuje lokalno vrijeme Format: date(datum_format[,"timestamp"]) Opis: Pokazuje lokalno vrijeme. Ako ne napiete timestamp, pokazati e
trenutno vrijeme. Timestamp pokazuje vrijeme od 01.01.1970. godine. Sljedei formati smiiju se koristiti:
a - "am" ili "pm" ("Prijeponde" ili "Poslijepodne") A - "AM" ili "PM" B - swatch internet vrijeme(1000 Beats u 24 h; Vrijeme u gradu Biel = 000
Beats) d - dan mjeseca sa nulom (npr. "09") j - dan mjeseca bez nule (npr. "9") t - broj dana u mjesecu (npr. "30") z - dan od poetka godine (npr. "156") w - numeriki dan tjedna (od "0" za nedelju do "6" za subotu) D - skraeno ime za dan u tjednu (npr. "Thu") l - puno ime dana u tjednu (npr. "Thursday") F - puno ime mjeseca (npr. "December") M - skraeno ime mjeseca (npr. "Dec") m - numeriko ime mjeseca sa nulom (npr. "05") n - numeriko ime mjeseca sa nulom (npr. "5") h - sat u 12-satnom formatiranju (npr. "05") H - sat u 24-satnom formatiranju (npr. "18")
_______________________________________________________________________________ FSB - Zagreb
22
-
Osnove programskog jezika PHP________________________________________________________
g - sat u 12-satnom formatiranju bez nule (npr. "5") G - sat u 24-satnom formatiranju bez nule (npr. "7") i - minute (npr. "07") U - protekle sekunde od 01.01.1970 (npr. "4890729") s - sekunde (npr. "02") S - engleski redni broj (npr. "th", "nd") L - prijestupna godina. rezultat "0" ili "1" Y - 4-cifreni godina (npr. "1999") y - 2-cifrena godina (npr. "99") Z - razlika u vremenu u odnosu na GMT (od "-43200" do "43200")
Primjer:
getdate()pokazuje datum/vrijeme Format: getdate(timestamp) Opis: Vraa datum/vrijeme u obliku arraya, i to u sekundama od 01.01.1970.
godine. Ako ne koristite timestamp, bit e pokazano trenutno vrijeme. Sljedei elementi se nalaze u array-u:
"seconds" - sekunde "minutes" - minute "hours" - sati "mday" - dan u mjesecu (npr. "13") "wday" - numeriki dan u tjrdnu (npr. "2" za utorak) "mon" - numeriki mjesec (npr. "10") "year" - godina (npr. "2002") "yday" - dan od poetka godine (npr. "225") "weekday" - puno ime dana u tjrdnu (npr. "Saturday") "month" - puno ime mjeseca (npr. "February")
Primjer:
_______________________________________________________________________________ FSB - Zagreb
23
-
Osnove programskog jezika PHP________________________________________________________
gmdate() date(), ali u GMT zoni Format: gmdate() Opis: Isto kao date(), samo to se odnosi na GMT (Greenwich Mean Time).
Na primjeru ispod se vidi razlika.
Primjer:
5.3 Direktorijske Funkcije
Funkcije za rad sa direktorijima na serveru. Za otvaranje direktorija, ulaz u direktorij, prelazi u drugi direktorij i dr. Evo nekih od funkcija.
chdir() mijenja direktorij Format: chdir($dir) Opis: Mijenja trenutni PHP direktorij. Vraa true ako komanda uspije, inae false
dir() ita direktorij
Format: dir($dir) Opis: ita direktorij koji je prethodno otvoren.
Primjer:
_______________________________________________________________________________ FSB - Zagreb
24
-
Osnove programskog jezika PHP________________________________________________________
getcwd() pokazuje trenutni aktivni direktorij Format: getcwd() Opis: Pokazuje trenutni aktivni direktorij.
Primjer:
5.4 File Funkcije
Pomou ovih funkcija radimo sa datotekama na serveru. itamo ih, kreiramo piemo u njih, mjenjamo im vlasnika (na *nix sustavima) i dr.. Evo nekih od funkcija.
copy() kopira file Format: copy($file,$novi_file) Opis: Kopira file. $novi_file moe biti samo novo ime file-a, ali moe i novi
direktorij, npr.: slike/index.html ili ../slikestare/index.html.bak . U svakom sluaju direktorij mora postojati, inae komanda nee biti uspjeno izvrena.
Primjer:
readfile() ita file i pokazuje sadraj Format: readfile($file) Opis: ita file i pokazuje sadraj file-a.
Primjer:
_______________________________________________________________________________ FSB - Zagreb
25
-
Osnove programskog jezika PHP________________________________________________________
file_exists() provjerava da li file postoji Format: file_exists($file) Opis: Provjerava da li file postoji i vraa true ako postoji, odnosno false ako
ne postoji.
Primjer:
fopen() otvara file ili URL Format: fopen($file,$modus) Opis: Otvara file lokalno ili na nekom drugom serveru (http:// ili ftp://).
Funkcija vraa tzv. Index file-a koji drugim komandama govori na koji se od otvorenih file-ova misli. $modus govori u kojem modusu treba da se otvori file. Na izboru imate: 'r' - otvara file samo za itanje 'r+' - otvara file za itanje i pisanje 'w' - otvara file samo za pisanje 'w+' - otvara file za itanje i pisanje i brie dosadanji sadrzaj file-a,
odnosno stvara novi file, ako ne postoji 'a' - otvara file samo za pisanje i stavlja kursor na kraj file-a i stvara novi
file, ako ne postoji 'a+' - otvara file za pisanje i itanje i stavlja kursor na kraj file-a i stvara
novi file, ako ne postoji
$modus moe sadrati i slovo "b", koje govori komandi da se radi o binarnom file-u. Od znaaja je samo na Windows serverima.
Primjer:
_______________________________________________________________________________ FSB - Zagreb
26
-
Osnove programskog jezika PHP________________________________________________________
fwrite() pie u file pointer Format: fwrite($file_pointer) Opis: Pie u file pointer. Moete zadati koliko elite da upiete u $file_pointer
pomou $duina. Ako nita ne zadate, biti e upisan itav string.
Primjer:
5.5 FTP Funkcije
Koriste se za rad sa udaljenim raunalom preko FTP protokola. Uspostavljanje FTP veze, skidanje(download) i slanje (upload) datoteka na udaljenom raunalu i dr. Evo nekih od funkcija.
ftp_connect() uspostavlja vezu sa FTP serverom Format: ftp_connect($host[,$port]) Opis: Uspostavlja/spaja se na FTP server. Obino koristi port 21, ako neki
drugi $port nije posebno specificiran. Vraa 1 ako komanda uspije.
Primjer:
ftp_fget() skida file sa FTP servera i snima ga u otvoreni file Format: ftp_fget($ftp,$lokalni_file_pointer,$ftp_file,$modus) Opis: Downloada file sa FTP servera i snima ga u otvoreni file pointer.
Morate odrediti $modus prenosa file-a: FTP_ASCII ili FTP_BINARY. Vraa 1 ako komanda uspije.
Primjer:
_______________________________________________________________________________ FSB - Zagreb
27
-
Osnove programskog jezika PHP________________________________________________________
ftp_rename() preimenuje file na serveru Format: ftp_rename($ftp,$staro_ime,$novo_ime) Opis: Mjenja ime file-a na FTP serveru. Ako funkcija uspije vraa true, inae
false.
Primjer:
5.6 MySQL Funkcije
Slue za upravljanje sa MySQL bazom podataka. Evo nekih od funkcija.
mysql_connect() upostavlja vezu sa MySQL serverom Format: mysql_connect($host[:$port][$socket_path],$user[,$pass]) Opis: Uspostavlja vezu sa MySQL serverom. Obino je dovoljno navesti
samo $host, $user i $pass (ako $user ima definisan password). Dosta rijetko je potrebno upisati $port odnosno $socket_path. $host je najee definiran kao "localhost".
Primjer:
mysql_create_db() kreira MySQL bazu Format: mysql_create_db($db[,$veza]) Opis: Kreira bazu na MySQL serveru. Definiranje $veze (mysql_connect ili
mysql_pconnect) nije obavezno. Mogue je koristiti i mysql_createdb (starija funkcija).
_______________________________________________________________________________ FSB - Zagreb
28
-
Osnove programskog jezika PHP________________________________________________________
Primjer:
mysql_drop_db() Brise MySQL bazu Format: mysql_drop_db($db[,$veza]) Opis: Brie bazu na MySQL serveru. Ako $veza nije definirana, onda se
koristi trenutno akitvna veza.
Primjer:
5.7 Regularni Izrazi
Slue za rad sa stringovima. Evo nekih od funkcija.
ereg_replace() zamjenjuje dio stringa kroz drugi string Format: ereg_replace($stari,$novi,$string) Opis: Zamjenjuje dio stringa kroz drugi string.
Primjer:
preg_quote() - stavlja backslash ispred regexp znakova Format: preg_quote($string[,$granica]) Opis: Stavlja backslash ispred znakova u regularnom izrazu, da specijalni
znakovi kao to su . \\ + * ? [ ^ ] $ ( ) { } = ! < > | : ne bi bili prepoznati kao dio regularnog izraza. Ako $granica definirana, i isped nje e biti stavljen backslash.
_______________________________________________________________________________ FSB - Zagreb
29
-
Osnove programskog jezika PHP________________________________________________________
Primjer:
5.8 String Funkcije
Slue za rad sa stringovima. Evo nekih od funkcija.
print() prikazuje string Format: print($string) Opis: Prikazuje string.
Primjer:
strlen() otkriva duzinu stringa Format: strlen($string) Opis: Otkriva duinu string - broji koliko ima znakova u stringu ukljuujui i
space (prazan prostor).
Primjer:
strcspn() usporeuje dva stringa po njihovim znakovima Format: strcspn($string1,$string2) Opis: Usporeuje dva stringa po njihovim znakovima i vraa broj znakova u
$string1 koji se nalaze prije nego to je naen bilo koji znak iz $string2 u njemu -> bilo koji znak iz $string2 se trai u $string1, i kao rezultat se vraa broj mjesta s lijeve strane naenog znaka. Komparacija je case sensitive. Pogledajte primjer za jasnije objanjenje.
_______________________________________________________________________________ FSB - Zagreb
30
-
Osnove programskog jezika PHP________________________________________________________
Primjer:
-
Osnove programskog jezika PHP________________________________________________________
Primjer:
var_dump() daje informacije o varijabli Format: var_dump($varijabla) Opis: Daje informacije o varijabli.
Primjer:
_______________________________________________________________________________ FSB - Zagreb
32
-
Osnove programskog jezika PHP________________________________________________________
6. Prilog (PHP_uionica)
Kao prilog ovom radu prilaem PHP scriptu koja slii kao pripomo pri savladavanju osnova u programskom jeziku PHP. Napisao sam je prije svega da meni olaka prolaz kroz poetke programiranja a nadam se da e pomoi jo nekom. 6.1 Nain koritenje
Prije svega moram napomenuti da na vaem raunalu morate imati instaliran PHP da bi mogli korirtiti ovu scriptu, to se toga tie preporuam da instalirate "phptriad" ili "nusphere". Jedna i druga instalacija imaju sve to vam treba za poetak (Apache-server, PHP i MySQL). Nakon toga potrebno je pokrenuti aplikacije. Kad smo to obavili sve fileove koji idu sa scriptom moramo smjestiti u "apache/htdosc/" direktorij ili neki poddrirektorij ( u mom sluaju C:\apache\htdocs\php_ucionica ). Onda u IE (ili u vaem omiljenom pregledniku) upiemo link scripte (u mom sluaju http://localhost/php_ucionica/php_ucionica.php) i naa scripta je pokrenuta i spremni smo za rad.
Sad dalje je sve jednostavno! U prvi "Texbox" upiemo php kod, i kliknemo na gumb "Izvri_PHP_kod", scripta e preuzeti kod, izvriti ga i ispisati rezultat u donoj tablici. U sluaju nekakvih greaka, PHP vam automatski ljavlja u kojem redu je greka i karakter greke, vi pogledate, razmislite i otklonite greku. Kad u prvom "Texbox-u" upisujete PHP kod koji treba generirati Html kod, puni prikaz tog Html koda biti e prikazan u drugom "Texbox-u".
Text Box u kojem se prikazuje Html kod
Tablica u kojoj se prikazuju rezultat koda
Gumb za izvravanje koda
Text Box u koji upisujemo PHP kod
Slika 1 - prikaz izgleda scripte
_______________________________________________________________________________ FSB - Zagreb
33
-
Osnove programskog jezika PHP________________________________________________________
Kratka napomena: Ako elite primjere iz ovog word dokumenata prebacivati sa "Copy", "Paste" u ovu scriptu doi e do problema jer kopirani tekst iz tablice gubi svoj format (prikazati e se sve u istom redu). Rjeenje je da ovaj dokument iz Worda snimite kao html file i onda iz njega kopirate u scriptu.
6.2 Nain rada
Nain rada scripte je vrlo jednostavan. Sav tekst koji upiemo u "Tex Box-u" aljemo preko forme, tu operaciju izvodimo kliknuvi na gimb "Izvri_PHP_kod". Evo prikaza koda koji to radi.
Primjer:
Primjeujete da u parametru action=" " ne postoji adresa na koju se alju podaci iz forme na obradu, to znai da se forma obrauje na istoj stranici odakle je i poslana. PHP kod unutar forme slui da se podaci koje smo poslali opet ispiu u formi.
Nakon toga text iz "Tex Box-a" preuzima PHP, prihvaa ga kao "string" i upisuje u eksternu datoteku. Ovaj dio se izvrava sljedeim kodom.
Primjer:
Da bi upisali u eksternu datoteku moramo je prije toga otvoriti i nakon upisa zatvoriti. Sa funkcijom "stripslashes" obrisali smo beckslasheve koje nam je upisao PHP uz posebne znakove (npr. " - navodnici).
Sljedi izvravanje tog istog teksta iz forme na nain to ga pozivamo iz eksterne datoteke s naredbom "include" i to u tablici gdje se automatski izvrava i u "Tex Box-u" gdje se izvrava ali se Html kod prikazuje u potpunosti. Evo i tog dijela koda.
Primjer:
_______________________________________________________________________________ FSB - Zagreb
34
-
Osnove programskog jezika PHP________________________________________________________
7. Zakljuak
Sastavljanjem ovog tutorijala upoznao sam se sa osnovnim znaajkama programskog jezika PHP. Uvidio sam njegove mogunosti i spoznao mogunosti koje nam prua pri izradi Web stranica. 8. Literatura
[1] Webmajstori Internet stranica (link: http://www.webmajstori.net ) [2] PHP.co.ba Internet stranica (link: http://www.php.co.ba )
_______________________________________________________________________________ FSB - Zagreb
35
1. Uvod2. to je PHP?3. Sintaksa PHP-a3.1 Varijable3.2 Komentari3.3 Tipovi podatakaCijeli brojeviRealni brojeviTekstualni podaciNizoviObjekti
3.4 Operatori3.5 Kontrolne struktureIf.. elseElseifSwitchWhile petljaDo whileFor petljaForeach petlja
3.6 Forme i prihvat informacija iz forme
4. Rad s bazama podataka4.1 MySQL
5. PHP funkcije5.1 Array Funkcije5.2 Datum i Vrijeme5.3 Direktorijske Funkcije5.4 File Funkcije5.5 FTP Funkcije5.6 MySQL Funkcije5.7 Regularni Izrazi5.8 String Funkcije5.9 Varijable
6. Prilog (PHP_uionica)6.1 Nain koritenje6.2 Nain rada
7. Zakljuak8. Literatura