35
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

Embed Size (px)

DESCRIPTION

osnovna objasnjenja nekih funkcija u najtrazenijem programskom jeziku php-u.

Citation preview

  • 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