238
Internet programiranje PHP

Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Embed Size (px)

Citation preview

Page 1: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Internet programiranje PHP

Page 2: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Uvod HTML i JavaScript se izvršavaju na

klijentskoj strani, odnosno na korisničkom računaru

PHP je jedan od programskih jezika za izradu dinamičkih veb strana koji se izvršava na serverskoj strani

PHP može da memoriše podatke i koristi ih u kasnijem trenutku

Page 3: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Istorija 1995 - PHP (Personal Home Page) jezik

je započeo Rasmus Lerdorf za potrebe lične veb strane 1995.

1999 - Zeev Suraski i Andi Gutmans su dalje razvili PHP 3 (PHP Hypertext Preprocessor) i Zend kompajler kao osnovu za PHP 4.

2004 - PHP 5 uključuje i objektno programiranje.

Trenutno se radi na PHP 6

Page 4: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Alternative PHP-u Alternative

Python Perl ASP – Active Server Pages JSP – Java Server Pages

LAMP – Linux Apache MySQL PHP (Python, Perl)

WAMP – Windows Apache MySQL PHP (Python, Perl)

XAMPP – Cross-Platform Apache MySQL PHP Perl

Page 5: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Popularnost Na tržištu više od 50% veb servera su tipa

Apache Najpopularniji programski jezik za

dinamičko programiranje veb strana na serverima Apache je PHP

PHP je uopšte jedan od najpopularnijih programskih jezika

PHP koriste wikipedia.org, yahoo.com, facebook.com itd.

Page 6: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Popularnost (langpop.com)

Page 7: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Reference Nije standard www.php.net Jason Gilmore, Beginning PHP and MySQL:

From Novice to Professional, Third Edition (Beginning from Novice to Professional), Apress, March 2008.

Luke Welling, and Laura Thomson PHP and MySQL Web Development (4th

Edition) (Developer's Library), Addison-Wesley Professional, October 2008.

www uopšte

Page 8: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Instalacija WAMP servera

WAMP server se može naći na:http://www.wampserver.com/en/ Instalacija je jednostavna. Pre instalacije idite na skype > tools >

options > advanced > connection i isključite port 80. Zatim zatvorite Skype.

Kada je WAMP instaliran, možete otvoriti Skype.

Page 9: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Konfiguracija servera

Konfiguracija Apache servera se obavlja u okviru fajla:

wamp\bin\apache\apache2.2.22\conf\httpd.conf Konfiguracija PHP kompajlera se

obavlja u okviru fajlawamp\bin\php\php5.4.3\php.ini Kada se promeni konfiguracija, klikne

se na Wamp ikonicu, pa na Restart

Page 10: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Osobine Platformski neutralan Sličan C-u od koga je nastao Integrisanost sa (X)HTML-om Nestruktuiran i nekonzistentan

Page 11: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Generalije Komande se završavaju ; Ključne reči (komande), imena

funkcija i klasa nisu osetljiva na veličinu slova (case insensitive), dok imena promenljivih jesu. Npr. promenljiva $txt se razlikuje od promenljive $TXT, dok su funkcije sort i SORT iste.

Page 12: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Za šta se koristi PHP? Omogućava dinamički HTML sadržaj Vrši obrade na serveru, npr.

prikuplja statistike o posećenosti Obrađuje podatke iz formulara Povezuje korisnike sa bazama

podataka na serveru Implementira autentifikaciju i zaštitu

komunikacije

Page 13: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

1. Osnove PHP-a Tag Komentari Prikaz Promenljive i njihovi tipovi Operatori Funkcije Objekti

Page 14: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Izvršavanje koda U okviru HTML koda: <script type=“php">...PHP kod…</script> Ili u eksternom fajlu:<script type=“php" src="phpkod.php"></script> Ali češće se koristi uprošćena sintaksa<?php ...PHP kod…?> odnosno<?php include(“phpkod.php”) ?>

Page 15: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Direktorijum php fajlova U konfiguracionom fajlu Apache servera,

httpd.conf, se određuje glavni direktorijum u kome su php fajlovi.

Kada su Apache, php, i MySQL baza posebno konfigurisani: U fajlu httpd Apache servera je određen defolt direktorijum za dokumente sledećom naredbom:

DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs“

To znači da su fajlovi u direktorijumu:C:\Program Files\Apache Software Foundation\

Apache2.2\htdocs

Page 16: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Direktorijum php fajlova U konfiguracionom fajlu Apache servera,

httpd.conf, se određuje glavni direktorijum u kome su php fajlovi.

Kada je instaliran WAMP, onda je defolt direktorijum sledeći

DocumentRoot "C:/wamp/www“ To znači da su fajlovi u direktorijumu: C:\wamp\www Drugi direktorijumi mogu da se odrede ili

relativno u odnosu na defolt direktorijum ili pomoću aliasa, npr:

Alias /slike /ftp/pub/slike

Page 17: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

XHTML fajlovi sa php kodomAko želimo da koristimo php kod u fajlu sa .html ekstenzijom, u httpd fajlu Apache servera treba ubaciti liniju (wamp\bin\apache\apache2.2.22\conf\httpd.conf)AddType application/x-httpd-php .html

Page 18: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Pozivanje php ili html fajlova Pomoću URL adreselocalhost/proba/proba.php Fajl proba.php je u direktorijumu

wamp\www\proba

Page 19: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Za komentar jedne linije - oznaka // ili # : // komentar u jednoj liniji ...

Za komentar više redova - /* za početak bloka pod komentarom i */ za kraj bloka pod komentarom:

/* Komentar u više redova...Drugi red komentara…*/

Komentari

Page 20: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer:<?phpecho “<b>Prvi red</b><br /><i>Drugi

red</i>”; ?> Ili:<?phpecho “<b>Prvi red</b><br />”,”<i>Drugi

red</i>”; ?> Rezultat oba primera:Prvi redDrugi red

Prikaz – echo, print

Page 21: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Mogućnosti umetanja PHP koda Može:<?php

if ($expression) {     ?>    <strong>This is true.</strong>    <?php } else {     ?>    <strong>This is false.</strong>    <?php }?>

Preporučivo:<?php

if ($expression) {     echo “<strong>This is true.</strong>”;}

 else {     echo “<strong>This is false.</strong>”;   } ?>

Page 22: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Promenljive

Sadrže vrednosti koje program smešta u okviru memorije računara

Promenljivoj se dodeljuje: željeno ime

vrednost

Tip promenljive ne mora da se specificira, određuje ga vrednost promenljive

Page 23: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Imena promenljivih

Sve promenljive počinju sa $

Drugi znak je slovo ili _

Page 24: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Tipovi podataka Skalarni

boolean – logički tip integer – celobrojni tip float – racionalni tip string – znakovni niz

Složeni array - niz object - objekat

Specijalni resource - resurs Null - ništa

Page 25: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Skalarni tipovi podataka Logički tip uzima vrednosti TRUE ili FALSE Celobrojni tip može biti decimalni, oktalni

(počinje sa 0) ili heksadecimalni (počinje sa 0x). Max vrednost zavisi od sistema a može da se odredi konstantnom PHP_INT_MAX

Racionalni tip ima razne oblike, npr.<?php

$a = 1.234; $b = 1.2e3; $c = 7E-10;?>

Page 26: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Znakovni niz - string Mogu biti pod apostrofima (‘ab’) ili navodnicima (“ab”) Kada se koriste apostrofi navodnici se koriste za navodnike u tekstu

i obrnuto. Apostrof unutar apostrofa \’, slično za navodnike. Za duži tekst pod navodnicima, može se koristiti <<< sa nekom

promenljivom koja razgraničava tekst (nema razmaka posle EOT):$s=<<<EOTTextEOT; Za duži tekst pod apostrofima$s=<<<‘EOD’TextEOD; Primer:echo <<<EOTPrimer “dužeg” znakovnog niza koji može zauzimati i “veliki broj

redova” i ‘puno’ navodnika itd.EOT;

Page 27: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

String - primeri Primer:<?php $foo = "foobar";$a=2; echo ‘foo je $foo <br />’;echo “foo je $foo <br />”;Echo ‘a je $a <br />’;Echo “a je $a <br />”; ?> Rezultat:foo je $foo foo je foobar a je $a a je 2

Page 28: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Niz - array Sintaksa definisanja nizaImeNiza=array([indeks1=>]vrednost1, …) Indeksi mogu biti celi brojevi ili stringovi. Indeksi koji nisu

specificirani uzimaju vrednosti redom 0,1,2,... Primer<?php $niz=array("Aleks" => "9", "Sanja" =>8 , "Mirko" =>6);echo $niz['Aleks'], "<br />";echo “{$niz['Aleks']} <br />";echo $niz["Sanja"];?> Rezultat:998

Page 29: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Multidimenzionalni nizovi Primer:$familije=array(“Simić”=>

array(“Branka”,”Dejan”),”Brusin”=>

array(“Mića”,”Maja”,”Marija”));

Page 30: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Objekat - object Objekti su slični kao kod JavaScript-

a, ali se sintaksa razlikuje Objekti se definišu klasama kojima

pripadaju Klase imaju definisane atribute i

metode Promenljive objekti se dobijaju

instanciranjem klase

Page 31: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Resurs - resource Promenljive tipa resurs su pokazivači na

složene eksterne promenljive Primer su pokazivač na otvoren fajl ili na

vezu sa bazom podataka Promenljive tipa resurs se generišu

različitim funkcijama u zavisnosti od primene

Kompajler automatski briše promenljive tipa resurs koje ne pokazuju na neki resurs

Page 32: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

NULL vrednost Vrednost NULL je

tip podataka/vrednost koja se može dodeliti promenljivoj

Pokazuje da promenljiva ne sadrži nikakvu korisnu vrednost

Promenljiva sa vrednošću NULL ima takvu dodeljenu vrednost

Vrednost “null” se dodeljuje promenljivoj kada se želi definisati da promenljiva ne sadrži nikakav podatak

Page 33: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Aritmetički Na nivou bita Relacioni Logički

Operatori

Page 34: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Operator Opis Operator Opis

+ sabiranje += sabiranje dodela

- oduzimanje -= oduzimanje dodela

* množenje *= množenje dodela

/ deljenje /= deljenje dodela

% moduo %= Moduo dodela

++ inkrement -- dekrement

Aritmetički operatori

Page 35: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

$a = 1 + 1;$b = $a * 3;$c = $b / 4;$d = $b – $a;$e = -$d;$f = ($g = 4) + 5; echo “a, b, c, d, e, f, g su” , “ ”,$a, “ ” ,$b, “ ”,$c, “ ”,$d, “ ”,$e, “ ”, $f, “ ”,$g; Nakon izvršavanja prethodnog primera dobija se

sledeći tekst na ekranu: a, b, c, d, e, su 2 6 1.5 4 -4 9 4

Aritmetički operatori

Page 36: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Na nivou bita

Operator Upotreba Opis

Logičko I (AND) $a & $b Rezultatni bit je 1, jedino ako su oba bita 1 u ostalim slučajevima rezultat je 0.

Logičko ILI (OR) $a | $b Rezultatni bit je 0, jedino ako su oba bita 0 u ostalim slučajevima rezultat je 1.

Logičko eksluzivno ILI (XOR)

$a ^ $b Rezultatni bit je 1, ako biti imaju različite vrednosti, u suprotnom je 0.

Logičko NE (NOT) ~ $a Komplementira bitove operanda a.

Pomeranje ulevo $a << $b Pomera binarni sadržaj operanda za b mesta ulevo. Prazna mesta popunjava sa vrednošću 0.

Pomeranje udesno sa znakom

$a >> $b Pomera binarni sadržaj operanda za b mesta udesno. Prazna mesta popunjava sa vrednošću najstarijeg bita.

Page 37: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Na nivou bita

15 & 9 rezultat 9 (1111 & 1001 = 1001)

15 | 9 rezultat 15 (1111 | 1001 = 1111)

15 ^ 9 rezultat 6 (1111 ^ 1001 = 0110)

Page 38: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Logički operatori

Operator Upotreba Opis

I (&& ili and)

expr1 && expr2 Rezultat je true, jedino ako su oba operanda true, u ostalim slučajevima rezultat je false.

ILI (|| ili or)

expr1 || expr2 Rezultat se dobija false, jedino ako su oba operanda false, u ostalim slučajevima rezultat je true.

NE (!) !expr Rezultat se dobija komplement od vrednosti operanada. Ako je operand true, rezultat je false, ako je operand false, rezultat je true

ILI (xor) expr1 xor expr2 Rezultat je true, ako su operandi različiti, i obrnuto, rezultat je false, ako su operandi isti

Page 39: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Logički$a = true;$b = false; $c = $a || $b; $d = $a && $b;$f = (!$a && $b) || ($a && !$b); $g = !$a;echo " a = ", $a, " <br /> " ;echo " b = ", $b , "<br />" ;echo " c = ", $c , "<br />" ;echo " d = " , $d , "<br />" ;echo " f = " , $f , "<br />" ;echo " g = " , $g; Rezultat izvršavanja prethodnog primera je:a = 1b = c = 1d = f = 1g =

Page 40: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Operatori poređenjaOperator Upotreba Opis

Jednakost (==) Rezultat je true ako su operandi jednaki

$x == $y rezultat je true ako su $x i $y jednaki.

Nejednakost (!= ili <>)

Rezultat je true ako su operandi različiti.

$x ! = $y rezultat je true ako su $x i $y različiti.

Veće (>) Rezultat je true ako je levi operand veći od desnog operanda.

$x > $y ako je $x veće od $y.

Veće ili jednako (>=)

Rezultat je true ako je levi operand veći ili jednak desnom operandu

$x >= $y ako je $x veće ili jednako $y.

Manje (<) Rezultat je true ako je levi operand manji od desnog operanda

$x < $y rezultat je true ako je $x manje od $y.

Manje ili jednako (<=)

Rezultat je true ako je levi operand manji ili jednak desnom operandu

$x <= $y rezultat je true ako je $x manje ili jednako $y.

Jednako bez konverzije tipova (===)

Rezultat je true ako su operandi jednaki bez konverzije podataka

$x === $y rezultat je true ako su $x i $y jednaki bez konverzije podataka

Različito bez konverzije tipova (!==)

Rezultat je true ako su operandi različiti bez konverzije podataka

$x !== $y rezultat je true ako su $x i $y različiti bez konverzije podataka

Page 41: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Operatori poređenja

$a = 4;$b = 1;$c = $a < $b;$d = $a == $b;echo “ c = “, $c, “<br />“ ;echo “ d = “, $d ; Rezultat izvršavanja prethodnog primera

jec = d =

Page 42: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

String operator . Pomoću string operatora . spajaju se

dva stringa Primer$a=‘Aleksandra’; $b=‘Smiljanić’;$c=$a. ‘ ‘ . $b;$a.=‘ S’;echo $a, ‘<br />’, $c; RezultatAleksandra SAleksandra Smiljanić

Page 43: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Operator nizova + Pomoću string operatora + spajaju se

dva niza Primer$a=array(0=>1,1=>2,2=>3); $b=array(3=>4,4=>5);$c=$a+$b;echo $c[0],$c[1],$c[3],$c[4]; Rezultat1245

Page 44: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Operator greške @ Pre izraza (funkcija,promenljivih itd.)

može se postaviti operator greške @ Uloga ovog operatora je da ignoriše

greške koje mogu da nastanu pri izračunavanju izraza (uključujući i izvršavanje funkcije itd.)

Page 45: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Operator za izvršni kod Naredba između dva akcenta `` izvršava

naredbe operativnog sistema (npr. kreiranje direktorijuma, listanje direktorijuma itd.)

Funkcioniše kada Apache nije u “Safe mode” i kada funkcija shell_exec nije isključena

“Safe mode” se uključuje a shell_exec isključuje u fajlu php.ini, zatim se Apache restartuje.

Page 46: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Operator za izvršni kod: primer Primer<?php$output = `dir`;echo "<pre>$output</pre>";?> RezultatVolume in drive C has no label. Volume Serial Number is E82B-743B

Directory of C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

04/24/2009 00:36.

04/24/2009 00:36 .. 11/20/2004 14:16 44 index.html 04/19/2009 22:51 21 phpinfo.php 04/24/2009 13:28 58 phpproba.php 3 File(s) 123 bytes 2 Dir(s) 78.881.165.312 bytes free

Page 47: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Operator za izvršni kod: primer Primer<?php$new_dir = "Bob";`mkdir $new_dir`?> Rezultat: otvoren je novi folder u

okviru foldera gde je PHP fajl koji ga kreira

Page 48: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcije

Funkcije predstavljaju grupu naredbi koja se može izvršiti kao pojedinačna jedinica

Funkcije su korisne jer čine program preglednijim i lakšim za ažuriranje

Kao i bilo koji drugi PHP kod, funkcije se moraju definisati u okviru <?php … ?> elementa

Funkcija se sastoji iz deklaracije funkcije i njenog poziva

Page 49: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Deklaracija funkcija Sintaksa za definisanje funkcije je : function imeFunkcije(parametri) {

naredbe;}

Page 50: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Pozivanje funkcije Da bi se izvršila funkcija potrebno ju je

pozvati sa određenog mesta u okviru programa

Funkcija se poziva njenim imenom i specifikacijom argumenata u okviru zagrada

Vrednosti argumenata se prosleđuju odgovarajućim parametrima funkcije u skladu sa deklaracijom funkcije

Page 51: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Mogućnosti Funkcija može biti pozvana

rekurzivno Funkcija može biti definisana

uslovno ili unutar druge funkcije, i onda je deklarisana samo ako je uslov ispunjen odnosno kada je ta druga funkcija pozvana

Page 52: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Naredba return Služi da bi se vratio rezultat funkcije

pozvanoj naredbi Dodeljuje pozvanoj naredbi vrednost

određenog izraza Tip može biti proizvoljanreturn 8;return $p*$m;

Page 53: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Opseg važenja promenljive Prema opsegu važenja promenljive se dele na

superglobalne, globalne ili lokalne Superglobalne promenljive su ugrađene u PHP i

važe u bilo kom programu i funkciji Globalne promenljive se deklarišu izvan

funkcije, i može im se pristupiti iz bilo kog dela programa

Lokalne promenljive se deklarišu u okviru funkcije i jedino su dostupne u okviru funkcije u kojoj su deklarisane

Parametri su takođe lokalne promenljive

Page 54: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer lokalne promenljive

<!DOCTYPE html><html><body>

<?php$x=5; // globalna  function mojTest(){$x=1;echo $x; // lokalna}

mojTest();?>

</body></html>

Page 55: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer globalne promenljive

<?php$x=5; // globalna$y=10; // globalna

function mojTest(){global $x,$y;$y=$x+$y;}

mojTest();echo $y; // izbacuje 15?>

Page 56: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Argumenti funkcije Argumenti funkcije su izrazi koji su razdvojeni

zarezom Promenljiva, argument, može biti prosleđena

direktno $a ili preko reference &$a. U drugom slučaju može da se menja vrednost argumenta.

Promenljivim, argumentima, se može dodeliti defolt vrednost. Primer:

function birajKafu($tip = “kapućino"){    return “Izabran je $tip.";}

birajKafu(“espreso”);birajKafu();

Page 57: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Ugrađene funkcije Postoji veliki broj funkcija koje su ili ugrađene

po defoltu ili se uključuju kroz ekstenzije i dodatne biblioteke u PHP

Kategorizacija funkcija i potrebne ekstenzije se mogu naći na veb strani http://www.php.net/manual/en/funcref.php

Spisak svih funkcija se mogu naći na veb strani:

http://www.php.net/manual/en/indexes.php

Page 58: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Promenljive funkcije Primer<?php

function fu() {    echo “Ovo je fu()<br />";}function bar($arg = ''){    echo “Ovo je bar(); 

argument je bio '$arg'.<br />";}$funk = 'fu';$funk();        $funk = 'bar';$funk('test');  ?>

Rezultat Ovo je fu() Ovo je bar(); argument je bio 'test'.

Page 59: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer Primer deklaracije funkcije:function calculate($a,$b,$c) {

$d = ($a+$b) * $c;return $d;

} Primer poziva funkcije:$x = calculate(4,5,9);echo "x je ", $x, "<br />“;$y = calculate(($x/3),3,5);echo "y je ", $y; Rezultat primera:x je 81y je 150

Page 60: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Objekti PHP podržava objekte kao strukturu

podataka Objekti se definišu pomoću funkcija Za svaki objekat su vezane osobine i

metode Osobine su promenljive kojima se dodaju

određene vrednosti Metode su funkcije u okviru objekata

kojima mogu da se menjaju njihove osobine

Page 61: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kreiranje klase i instance objekta Klasa objekta ili prototip se definiše klasom čija

je sintaksaclass mojObjekat {[[deklaracijaOsobine1] osobina1;][[deklaracijaOsobine2] osobina2;…] [[deklaracijaMetode1] metoda1;][[deklaracijaMetode2] metoda2;…]} Instanca objekta se definiše pomoću naredbe

newmojaInstanca=new mojObjekat Osobine klase mogu biti naknadno definisane

Page 62: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Deklaracije osobine Deklaracija osobine može biti

public – može se menjati sa bilo kog mesta direktno

private – može se menjati samo pomoću metode objekta

protected – nepoznata je van objekta final – ne može se menjati u klasama

naslednicima

Page 63: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Deklaracije metode Deklaracija metode može biti

public – može se koristiti van klase pozivanjem metode instance

private – rezultati metoda se koriste samo u okviru objekta

protected – rezultati metoda se koriste samo u okviru objekta ili nekog naslednika

abstract – samo deklarisana u roditeljskoj klasi

final – ne može se menjati u klasama naslednicima

Page 64: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa osobinama objekata Vrednost osobine instance objekta

se može koristiti na sledeći način: imePromenljive=mojaInstanca->

Osobina1; Vrednost osobine instance objekta

se može promeniti ili naknadno definisati ukoliko nije bila ranije:

mojaInstanca->Osobina1=vrednost1;

Page 65: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kreiranje objekta sa metodom Primer metoda objekta:class mojKrug {public $xkord; public $ykord; public $poluprecnik; public function _construct ($a,$b,$c){$this->xkord=$a;$this->ykord=$b;$this->poluprecnik=$c;}public function izrPovrsinu() {return ( M_PI * $this->poluprecnik * $this->poluprecnik);} public function izrObim() { return ( M_PI * $this->poluprecnik * 2 ); }public function pomeriZa($xDis,$yDis) { $this->xkord += $xDis; $this->ykord += $yDis; }

Page 66: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Korišćenje metoda Primer korišćenja metoda iz prethodnog primera:var $primerKruga = new mojKrug(3,4,5);$primerKruga->pomeriZa(2,3); echo ‘Površina kruga je ‘, $primerKruga->izrPovrsinu();echo ‘<br />Obim kruga je ‘, $primerKruga->izrObim(); Rezultat prethodnih komandi je:Površina kruga je 78.5398163397 Obim kruga je 31.4159265359

Page 67: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Pozivanje konstanti Ne mora se instancirati objekat da bi se

pozvala konstanta njegove klase Primer<?phpclass Math {const pi = 3.14159;}echo " Math::pi = “,Math::pi;?>

Page 68: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Pozivanje statičkih osobina i metoda Statičke osobine i metode se takođe mogu zvati bez instanciranja objekta Primer<?phpclass Poseta{private static $posetioci = 0; function __construct(){self::$posetioci++;}static function izbrojPosetioce(){return self::$posetioci;}}$posete = new Poseta();echo Poseta::izbrojPosetioce()."<br />";$posete2 = new Poseta();echo Poseta::izbrojPosetioce()."<br />";echo $posete -> izbrojPosetioce();?> Rezultat primera:122

Page 69: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Nasleđivanje između klasa Primer:<?php

class SimpleClass{ public $var = 'a default value';   public function displayVar() {        echo $this->var;}}

class ExtendClass extends SimpleClass{    public function displayVar()    {echo "Extending class <br />";        parent::displayVar();    }}$extended = new ExtendClass();$extended->displayVar();?>

Rezultat:Extending class a default value

Page 70: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

2. Kontrola toka Ternarni operator Naredba if-else Naredba switch Petlje

for petlja while petlja

Izlazi iz blokova break continue goto

Naredbe include, require

Page 71: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Ternarni operator Sintaksa:logIzraz ? izraz1 : izraz2 gde je izraz log_izraz bilo koji izraz čiji

rezultat je vrednost logičkog tipa. Ako je rezultat izraza true, onda se izvršava izraz1, u suprotnom izraz2.

Primer: $kolicnik = $imenioc ==0 ? 0 :

$brojioc/$imenioc

Page 72: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kontrole toka - if Sintaksa: if (logIzraz) {naredbe1;}

[else {naredbe2;}]

Primer: if ($x == 8) {

                    $y=$x;           }

else {                $z=$x;

$y=$y*$x; }

Page 73: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kontrola toka - if Još jedan primer:if ($mesec == 1)

$ime_meseca = “Januar”;else if ($mesec == 2)

$ime_meseca = “Februar”;else if ($mesec == 3)

$ime_meseca = “Mart”;else if ($mesec == 4)

$ime_meseca = “Maj”;else

....else if ($mesec == 12)

$ime_meseca = “Decembar”;

Page 74: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kontrola toka - switch Sintaksa switch (izraz) { case vr1: naredbe1; [break;] ... case vrN: naredbeN; [break;] [default: naredbeDef;]}

Page 75: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kontrola toka - switch Primer: switch($mesec) { case 1: $ime_meseca = “Januar”; break; case 3: $ime_meseca = “ Mart”; break; case 5: $ime_meseca = “Maj”; break; case 7: $ime_meseca = “Jul”; break; case 8: $ime_meseca = “Avgust”; break; case 10: $ime_meseca = “Oktobar”; break; case 12: $ime_meseca = “Decembar”; break; case 4: $ime_meseca = “ April ”; break; case 6: $ime_meseca = “Jun”; break; case 9: $ime_meseca = “Septembar”; break; case 11: $ime_meseca = “Novembar”; break; case 2: $ime_meseca = “ Februar ”;}

Page 76: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Petlje - while Sintaksa: [inicijalizacija;]

while(logIzraz){ naredbe; }

Primer:$i=1;while($i<=10){ echo $i, "<br />";

$i=$i+1;}

Page 77: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Petlje - do-while Sintaksa: [inicijalizacija;]

do { naredbe;

} while (logIzraz);

Primer: $i=1;

do { echo $i, "<br />"; $i=$i+1;

} while($i<=10)

Page 78: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Petlje - for Sintaksa:for(inicijalizacija; logIzraz; iteracija){ naredbe;}

Primer: for($i=1; $i<=10; $i++){ echo $i, "<br />";}

Page 79: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Petlje - foreach Sintaksa: foreach (izrazNiza as [index=>] vrednost) { naredbe; } Primer: $a = array(1, 2); $b= array(2=>4);

foreach (($a+$b) as $v) {    echo “Vrednost \$a je $v. ";}

Rezultat: Vrednost $a je 1. Vrednost $a je 2. Vrednost

$a je 10.

Page 80: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kontrola toka - break Primer: 1:{

2: { 3: {

echo “pre break-a”; break 2; } echo “ovo neće biti prikazano”; } echo “posle break-a”; }

Rezultat: pre break-a posle break-a

Page 81: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kontrola toka - break Primer: 1:{ 2: {

3: { echo “pre break-a”; break 3; } echo “ovo neće biti prikazano”; } echo “posle break-a”; }

Rezultat: pre break-a ovo neće biti prikazano posle break-a

Page 82: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kontrola toka - continue Takođe može koristiti numerički argument Primer:for($i=0; $i<10; $i++){ echo $i+ “ “; if ($i%2 ==0) continue; echo “<br />“; }

Rezultat: 0 1

2 34 56 78 9

Page 83: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Komanda toka goto Primer:

<?phpgoto a;echo 'Fu'; a:echo 'Bar';?>

Page 84: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Komanda include Primer poziv.php

<?php$boja = ‘zelena';$voce = ‘jabuka';?>test.php<?phpecho “Jedna $boja $voce"; 

include ‘poziv.php';echo “Jedna $boja $voce"; ?>

Rezultat skripta test.phpJednaJedna zelena jabuka Naredba include_once uključuje fajl samo ako nije bio prethodno

uključen.

Page 85: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Komanda require Komanda require je ista kao

komanda include samo u njenom slučaju ukoliko se fajl ne nađe obustavlja se dalje izvršenje programa.

Komanda require_once uključuje fajl samo ako nije prethodno uključen.

Page 86: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

2. PHP funkcije Funkcije nizova Funkcije sa uzorcima za

pretraživanje Funkcije sa stringovima Matematičke funkcije Funkcije sa datumom i vremenom

Page 87: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcija nizova print_r Služi za ispisivanje nizova Primer:$glavniGradovi

=array(“Srbija”=>”Beograd”, “Francuska”=> “Pariz”, “Belgija”=> “Brisel”);

print_r($glavniGradovi); Rezultat:Array ( [Srbija] => Beograd [Francuska] =>

Pariz [Belgija] => Brisel )

Page 88: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcija nizova list Primer:$glavniGradovi = "Beograd|Pariz|Brisel";list($a[0],$a[1],$a[2])=explode("|",

$glavniGradovi);print_r($a); Rezultat:Array ([0] => Beograd [1] => Pariz [2] =>

Brisel)

Page 89: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Brojanje elemenata count(niz[,mod]) – daje broj

elemenata niza, a ako je mod=1 onda broji i elemente podnizova rekurzivno

array_count_values(niz) – za svaku vrednost daje broj pojavljivanja

Page 90: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Dodavanje i oduzimanje elemenata niza Funkcije su

array_push(imeNiza, element) – dodaje vrednost elementa na kraj niza

array_pop(imeNiza) - daje vrednost poslednjeg elementa niza

array_shift(imeNiza) – daje prvi element dok se svi elementi niza pomere za jedan ulevo

Page 91: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Dodavanje i oduzimanje elemenata niza Funkcije su dalje:

array_unshift(imeNiza, element1, [element2…]) – dodaje vrednost elementa na početak niza a ostale elemente pomera za jedan udesno

array_pad(imeNiza, duzinaNiza, element1) – dopunjava niz do zadate dužine zadatim elementima

Page 92: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Lociranje elementa u nizu Funkcije su:

in_array(element,imeNiza) – daje TRUE ako je vrednost datog elementa u datom nizu i FALSE u obrnutom slučaju

array_keys(imeNiza[,element]) – daje niz svih indeksa elemenata, odnosno niz indeksa zadate vrednosti

array_search(element,imeNiza) – daje vrednost prvog indeksa zadate vrednosti

Page 93: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcije kretanja po nizu Funkcije:

key(imeNiza) – daje trenutni indeks current(imeNiza) – daje trenutnu

vrednost each(imeNiza) – daje trenutni indeks-

vrednost par i pomera pokazivač za jedan

Page 94: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcije kretanja po nizu Funkcije:

reset(imeNiza) – vraća pokazivač na početak niza

next(imeNiza) – vraća vrednost sledećeg elementa u nizu i pomera ga za jedno mesto unapred

prev(imeNiza) – vraća vrednost prethodnog elementa u nizu i pomera ga za jedno mesto unazad

end(imeNiza) – pomera pokazivač na kraj niza i vraća vrednost elementa

Page 95: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Sortiranje niza Funkcije:

sort(imeNiza[,sortFleg]) – sortira niz. sortFleg može biti SORT_NUMERIC, SORT_REGULAR (zavisi od tipa elemenata), SORT_STRING

rsort(imeNiza[,sortFleg]) – sortira niz u opadajućem redosledu

asort(imeNiza[,sortFleg]) – sortira niz zadržavajući index-vrednost parove

Page 96: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Sortiranje niza Funkcije:

usort(imeNiza[,imeFunkcije]) – sortira niz na osnovu zadate funkcije

array_reverse(imeNiza[,fixIndekse]) – obrne redosled elemenata, ako su pravi indeksi numerički i fixIndekse=TRUE čuvaju se kao indeksi

array_flip (imeNiza) – obrne mesta indeksima i vrednostima

Page 97: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kombinovanje nizova Funkcije:

array_combine(niz1,niz2) – daje nov niz u kome vrednosti prvog niza postaju indeksi drugog niza

array_merge(niz1,niz2) – daje novi niz spajanjem dva niza. Ukoliko su dva indeksa ista, uzima se indeks drugog niza, kod operatora + je suprotno.

array_slice(niz1,ofset[,duzina]) – daje novi niz kao deo niza date dužine počev od indeksa sa rednim brojem ofset

array_splice(niz1,ofset[,duzina][,niz2]) – daje niz u kome je obrisan deo niza date dužine počev od ofseta, i eventualno ga zamenjuje drugim nizom

Page 98: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kombinovanje nizova Funkcije:

array_intersect(niz1,niz2) – daje niz svih vrednosti koje su zajedničke za dva niza

array_intersect_assoc(niz1,niz2) – daje niz svih parova indeks-vrednost koje su zajedničke za dva niza

array_diff(niz1,niz2[,niz3…]) – daje vrednosti prvog niza koje se ne nalaze u narednim nizovima koji su argumenti funkcije

Page 99: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Pretraživanje pomoću uzoraka Postoji dve vrste uzoraka

POSIX PCRE – Perl Compatible Regular

Expression Perl uzorci su najpopularniji, i isti

kao i kod Javascript-a

Page 100: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Uzorak Uzorak je niz znakova i specijalnih

znakova Sintaksa:imeUzorka = /mustra/atributi; Gde je mustra niz znakova i specijalnih

znakova, a atributi su znakovi koji specificiraju način apliciranja mustre.

Sintaksa mustri: http://www.php.net/manual/en/regexp.reference.php

Page 101: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Specijalni znaci u uzorcima

Karakter Predstavlja

Slovo ili broj Istu vrednost

\cx control-x

\t Tab znak

\n Nova linija

\v Vertikalni tab znak

\f Form feed (nova strana)

\r Carriage return (početak strane)

\xhh Heksadecimalni kod unicode znak

Page 102: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Specijalni znaci u uzorcimaKarakter Predstavlja pojavljivanje

[...] Bilo kog karaktera od onih koji su navedeni između [ i ].

[^...] Bilo kog karaktera koji nije naveden između [ i ].

. Bilo kog karaktera osim nove linije

\w Bilo kog ASCII definisanog slova, cifre ili _.

\W Bilo kog karaktera koji nije \w.

\d Bilo koje ASCII definisane cifre

\D Bilo kog karaktera koji nije ASCII definisana cifra

\s Blanko znak

\S Nije blanko znak

Page 103: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primeri uzoraka/[abc]/ predstavlja jedno pojavljivanje simbola a ili jedno

pojavljivanje simbola b ili jedno pojavljivanje simbola c.

/[^abc]/ predstavlja karakter koji nije simbol a ili b ili c./\d\d\d\d\d/ Pomoću ovog uzorka se definiše broj koji se

sastoji od 5 cifara

Page 104: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Specijalni znaci u uzorcimaOznaka Značenje

{n,m} Ponavljanje prethodne grupe najmanje n puta, ali najviše

m puta.

{n,} Ponavljanje prethodne grupe n ili više puta.

{n} Ponavljanje prethodne grupe tačno n puta.

?Ponavljanje prethodne grupe jednom ili nijednom. Isto

dejstvo kao i {0,1}.

+Ponavljanje prethodne grupe jednom ili više puta. Isto

dejstvo kao i {1,}.

*Ponavljanje prethodne grupe nijednom ili više puta. Isto

dejstvo kao i {0,}.

|Alternative. Pojavljivanje dela izraza sa desne ili

pojavljivanje izraza sa leve strane.

(...)Grupisanje simbola u jedan objekat nad kojim se mogu

koristiti oznake *, +, ?, |, itd.

^ Pretraga uzorka se obavlja na početku stringa

$ Pretraga uzorka se obavlja na kraju stringa

Page 105: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primeri uzoraka /\d{2,4}/ // uzorak koji označava

pojavljivanje 2, 3 ili 4 cifre /\w{3}\d?/ // uzorak koji označava

pojavljivljavanje tačno tri znaka i opciono jedne cifre, npr. string koji odgovara ovom uzorku je „abc8” ili „qoq”.

/\s+java\s+/ // uzorak koji označava string “ java " sa jednim ili više prostora pre ili posle stringa

/["]*/ // uzorak koji označava nula ili više pojavljivanje karaktera navoda

Page 106: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primeri uzoraka /ab|cd|ef/ // uzorak koji označava

pojavljivanje ab ili pojavljivanje cd ili pojavljivanje ef

/\d{3}|[a-z]{4}/ // uzorak koji označava pojavljivanje tri cifre ili 4 mala slova, npr “123” ili “abcd”

/((ab|cd)+|ef)/ // uzorak koji označava pojavljivanje stringa „ef” ili pojavljivanje jednom ili više puta stringa „ab” ili pojavljivanje jednom ili više puta stringa „cd”, npr. “abab”

Kada tražimo neki od komandnih znakova onda koristimo \*, a kada tražimo \’, onda koristimo \\\’

Page 107: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Atributi uzoraka

Atribut Značenje

iIzvršavanje case-insensitive

ispitivanja.

g

Izvršava globalno ispitivanje, znači pronači će se sva pojavljivanja definisanog uzorka, a neće se ispitivanje zaustaviti posle prvog pronalaska uzorka.

m Rad sa više linija.

Page 108: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Korisni uzorci DNS"^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9_\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9]

[a-zA-Z0-9_\-]{0,61}[a-zA-Z0-9]))*$" E-mail“^[a-zA-Z0-9_\.\+\-]+@([a-zA-Z0-9]|[a-zA-Z0-

9][a-zA-Z0-9_\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9]

[a-zA-Z0-9_\-]{0,61}[a-zA-Z0-9]))*$”

Page 109: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcije uzorka Funkcije: preg_grep(imeUzorka,imeNiza) – daje niz sa svim

elementima niza koji u sebi sadrže uzorak preg_match(imeUzorka,imeStringa[,nizUzoraka]) –

daje listu poduzoraka datog uzorka u zadatom stringu koji se čuva u zadatom nizu

preg_replace(imeUzorka,imeStringa,imeNiza) – zadati uzorak se zamenjuje stringom u datom nizu stringova (ili nizu)

preg_split(imeUzorka,imeStringa) – stvara niz delova teksta koji su razdvojeni zadatim uzorkom

Page 110: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcije uzorka - primer Primer:<?php

$delimitedText=“+Jason++++++++++++Columbus+++OH”;$fields=preg_split(“/\+{1,}/”,$delimitedText);

foreach($fields as $field) echo $field.”<br />”;?> Rezultat:JasonColumbusOH

Page 111: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcije uzorka – primer 2 Primer:

<?php preg_match(“/^[0-9a-zA-Z\.]+\.(gif|jpg|png|jpeg)

$/”, “slika.jpg”,$niz); print_r($niz); ?> Rezultat:Array([0]=>slika.jpg [1]=>jpg) Kada bi bila slika.jpge rezultat bi bio prazan niz

Page 112: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcije upoređenja stringova

Funkcije: strlen(string) – dužina stringa strspn(string1,string2) – daje dužinu

segmenta u kome se nalaze samo znaci iz drugog stringa

Page 113: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Manipulacija stringovima Funkcije:

strtolower(string) – sva slova se menjaju u mala

strtoupper(string) – sva slova se menjaju u velika

ucfirst(string) – prvo slovo se menja u veliko

Page 114: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Dodavanje i oduzimanje od stringova Funkcije:

ltrim(string1,string2) – oduzimaju se znaci sa leva prvog stringa koji pripadaju drugom stringu

rtrim(string1,string2) – oduzimaju se znaci sa desna prvog stringa koji pripadaju drugom stringu

trim(string1,string2) – oduzimaju se znaci s krajeva prvog stringa koji pripadaju drugom stringu

str_pad(string1,duzina,string2[,tip]) – dodaje se drugi string prvom stringu dok se ne dopuni do dužine, tip može biti STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH

Page 115: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Još neke funkcije stringova Funkcije:

explode(separator,string) – daje niz delova stringa koji su razgraničeni znakom koji je separator

implode (separator,niz) – obrnuto od explode strpos(string,podstring) – nalazi prvu poziciju

podstringa u stringu strrpos(string,podstring) – nalazi poslednju

poziciju podstringa u stringu substr_count(string,podstring) - broji broj

nepreklapajućih podstringova u stringu

Page 116: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Sortiranje niza - primer Primer: <? phpfunction sortirajDatume($a,$b){If ($a=$b) return 0;list($adan,$amesec,$agodina)=explode(‘-’,$a);list($bdan,$bmesec,$bgodina)=explode(‘-’,$b);$amesec=str_pad($amesec,2,’0’,STR_PAD_LEFT);$bmesec=str_pad($bmesec,2,’0’,STR_PAD_LEFT);$adan=str_pad($adan,2,’0’,STR_PAD_LEFT);$bdan=str_pad($bdan,2,’0’,STR_PAD_LEFT);$a=$agodina.$amesec.$adan;$b=$bgodina.$bmesec.$bdan;return ($a > $b ? 1 : -1);}

Page 117: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Sortiranje niza - primer$datumi = array(“7-10-2007”,”6-2-2008”,”30-12-

2008”);sort($datumi);print_r($datumi);echo “<br />”;usort($datumi,”sortirajDatume”);print_r($datumi);} Rezultat:Array ( [0] => 30-12-2008 [1] => 6-2-2008 [2] => 7-10-2007)Array ( [0] => 7-10-2007 [1] => 6-2-2008 [2] => 30-12-2008)

Page 118: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Matematičke funkcije Veliki broj matematičkih funkcija je

na raspolaganju, mogu se naći na:http://www.php.net/manual/en/book.math.php

Page 119: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Datum i vreme Funkcije koje se tiču datuma i

vremena mogu se naći na: http://www.php.net/manual/en/refs.calendar.php

Page 120: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

3. PHP u praksi PHP interfejsi preko superglobalnih

promenljivih Obrada podataka iz formulara Aploudovanje fajlova Rad sa fajlovima PHP sesije i kolačići PHP e-mail PHP autentifikacija

Page 121: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Superglobalne promenljive Superglobalne promenljive su interfejsi

PHP programa sa spoljnom okolinom preko kojih razmenjuju informacije

Neke važne superglobalne su sledeće: $_SERVER, $_GET, $_POST, $_FILES, $GLOBALS, $_COOKIE, $_SESSION, $_ENV

Superglobalne promenljive (superglobals) se mogu naći na: http://us2.php.net/manual/en/reserved.variables.php

Page 122: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Superglobalna $_SERVER $_SERVER je niz sa informacijama o hostu i

serveru Neki elementi niza $_SERVER

$_SERVER[‘HTTP_REFERER’] – URL veb adrese sa koje se došlo na datu stranu

$_SERVER[‘REMOTE_ADDR’] – klijentova IP adresa $_SERVER[‘REQUEST_URI’] – relativna putanja do

zadatog fajla, uključujući i upite pomoću get metode $_SERVER[‘HTTP_USER_AGENT’] – operativni sistem i

brauzer klijenta $_SERVER[‘PHP_SELF’] – skript koji se izvršava, ime

fajla uključujući relativnu putanju. Konstanta __FILE__ jeste magična (magic) konstantna i daje kompletno ime fajla uključujući i absolutnu adresu

Page 123: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Superglobalna $_GET $_GET je niz koji sadrži parametre koji su

prosleđeni metodom get HTTP metoda get se koristi kada se preuzima

sadržaj sa servera, i njeni parametri se prosleđuju kroz URL

Stranice dobijene get metodom mogu da se memorišu, i čuvaju se u kešu

Primer, ukucajmo proba u polje za pretraživanje na www.naslovi.net:

http://www.naslovi.net/search.php?q=proba Tada je $_GET[‘q’] jednak ‘proba’

Page 124: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Superglobalna $_POST $_POST je niz parametara koji se prosleđuju kroz metod

post, koristeći atribute name Primer:<html><form action=“http://localhost/upis.php” method=“post”><p> e-meil: <br /> <input type=“text” name=“emeil” />

</p><p> Šifra: <br /> <input type=“password” name=“šifra” />

</p><input type=“submit” name=“upis” value=“Upiši se!” /> </ form></html>U fajlu upis.php<?php echo $_POST[‘email’]; ?>

Page 125: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Supeglobalna $_POST Pomoću HTTP metode post se šalju podaci odvojeno kroz

formular Podaci poslati post metodom se ne mogu memorisati

(bookmark) niti keširati. Zbog toga pružaju veću bezbednost prenosa. Podaci nisu ograničene dužine kao kod get metode.

Klijent šalje serveruPOST /formulari/upis.php HTTP/1.1 Host: primer.rs Content-Type: application/x-www-form-urlencoded   ime=Pera&telefon=063-330-754 Server odgovaraHTTP/1.1 201 Created Date: … Content-Length: 0Location:http://primer.rs/formulari/upis.php

Page 126: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Superglobalna $_FILE $_FILE je matrica koja se koristi kod

aploudovanja fajlova. Elementi ove matrice opisuju zadati fajl:

$_FILE[nameAtribut][‘name’] – ime fajla koji je aploudovan kroz input tag čiji je name atribut jednak nameAtribut

$_FILE[nameAtribut][‘type’] – tip fajla $_FILE[nameAtribut][‘size’] – veličina fajla $_FILE[nameAtribut][‘tmp_file’] – privremeno

ime fajla

Page 127: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Superglobalna $_FILE Još jedan element ove matrice:

$_FILE[nameAtribut][‘error’] – opisuje grešku do koje je došlo pri aploudovanju fajla, može imati sledeće vrednosti:

• UPLOAD_ERR_OK: fajl je uspešno aploudovan• UPLOAD_ERR_INI_SIZE: fajl prelazi maksimalnu

veličinu dozvoljenu parametrom upload_max_filesize specificiranu u php.ini

• UPLOAD_ERR_FORM_SIZE: fajl prelazi max veličinu specificiranu u formularu parametrom MAX_FILE_SIZE (ne koristi se)

• UPLOAD_ERR_PARTIAL: fajl je samo delimično aploudovan

• UPLOAD_ERR_NO_FILE: fajl nije bio specificiran

Page 128: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Superglobalna $_COOKIE $_COOKIE je niz koji nosi informacije o

kolačićima. Indeksi ovog niza su imena kolačića, a

vrednosti su vrednosti kolačića. Kolačići se setuju funkcijom:setcookie ( ime [, vrednost [, rok [, putanja [,

domen [, zaštita [, httponly ]]]]]] ) U php.ini se definiše veličina bafera u kojem

se čuva html strana pre slanja, da ne bi zaglavlje bilo poslato pre setovanja kolačića, npr:

output_buffering=1024

Page 129: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Superglobalna $_SESSION $_SESSION je niz indeksa (ključeva) i

vrednosti koji se vezuje za korisnika. Sesija se generiše pomoću funkcije

start_session() kojom se kolačić čija je vrednost jednaka SID (ID sesije) šalje korisniku.

Page 130: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa formularima Primer formulara u jednom fajlu upis2.php:<?php if (isset($_POST["upis"])){

echo $_POST[“emeil"], '<br />', $_POST['sifra'];}

else {

echo <<<EOT<form action="http://localhost/upis2.php" method="post"><p> E-meil: <br /> <input type="text" name=“emeil" /> </p><p> Šifra: <br /> <input type="password" name="sifra"/> </p><input type="submit" name="upis" value="Upiši se!" /> </form>EOT;}?>

Page 131: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa formularima

Page 132: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Prosleđivanje promenljivih od PHP ka JavaScript-u Primer:<?php    

$user_id = $_GET["uid"]; ?> <script type=“text/javascript"> var user_id = <?php echo($user_id);?>;

alert("Your user ID is:" + user_id);</script>

Page 133: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa formularima: PHP i JavaScript

Primer fajla upis3.php:<html><form action="http://localhost/upis3.php" method=“post”><p> e-meil: <br /> <input type="text" name="emeil" ></p><p> Šifra: <br /> <input type="password" name="sifra"/>

</p><input type="submit" name="upis" value="Upiši se!" /> </form><?php if (isset($_POST["upis"])){ $x='emeil‘;?><script type="text/javascript"> alert ("Emeil je: <?php echo $_POST[$x]; ?>"); </script> <?php } ?></html>

Page 134: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa formularima: PHP i JavaScript

Page 135: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa formularima: izbor opcija

Primer formulara sa listom u fajlu checkbox.php, daje niz sa value atributiima izabranih polja:

<?phpecho <<<EOTIzaberite omiljene programske jezike? <br /><form action="checkbox.php" method=“post”><input type="checkbox" name="jezici[]" value="csharp"/> C# <br /><input type="checkbox" name="jezici[]" value="jscript"/> JavaScript <br /><input type="checkbox" name="jezici[]" value="perl"/> Perl <br /><input type="checkbox" name="jezici[]" value="php"/> PHP <br /><input type="submit" name="upis" value="Pošalji!" /></form>EOT;if (isset($_POST['upis'])){echo "Izabrali ste jezike: <br />"; foreach($_POST['jezici'] AS $jezik) echo "$jezik <br />";}?>

Page 136: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa formularima: izbor opcija

Page 137: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Konfiguracija za aploudovanje fajlova U php.ini fajlu se mogu konfigurisati:

file_uploads On|Off max_execution_time brojSekundi memory_limit brojMegaBajtaM (za dati

skript) upload_max_filesize brojMegaBajtaM upload_tmp_dir imeStringa post_max_size brojMegaBajtaM (količina

podataka po jednoj post metodi veći od upload_max_filesize)

Page 138: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Aploudovanje fajla Primer fajla aploudFajla.php :<form action="aploudFajla.php"

enctype="multipart/form-data" method=“post”>

Broj indeksa: <br /> <input type="text" name=“brojIndeksa" /> <br />

Domaći: <br /> <input type="file" name="domaci" /> <br />

<input type="submit" name="posalji" value="Pošalji!" />

</form>

Page 139: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Aploudovanje fajla<?php define ("fajloviDomaci","C:\Program Files\wamp\www\

domaci\\");if (isset($_FILES['domaci'])){if (is_uploaded_file($_FILES['domaci']['tmp_name'])){ if ($_FILES['domaci']['type'] != 'application/pdf'){ echo "<p> Domaći može biti aploudovan samo u *.pdf

formatu </p>";} else { $brojIndeksa=$_POST[‘brojIndeksa'];

$rezultat=move_uploaded_file($_FILES['domaci']['tmp_name'],fajloviDomaci.“_$brojIndeksa.pdf");

if ($rezultat==1) echo "<p> Fajl je uspešno aploudovan. </p>";

else echo "<p> Fajl nije aploudovan, pokušajte ponovo. </p>";}}}

?>

Page 140: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Aploudovanje fajla

Fajl _05-132.pdf je u folderu domaci

Page 141: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Mime tipovi Tip fajla se može biti bilo koji

mime tip, koji se mogu naći npr. na:

http://www.webmaster-toolkit.com/mime-types.shtml

Page 142: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Aploudovanje fajlova – sa vremenskim oznakama Primer aploudFajla2.php:<form action="aploudFajla2.php" enctype="multipart/form-data"

accept-charset="utf-8" method=“post”>Broj indeksa: <br /> <input type="text" name="brojIndeksa" /> <br />Domaći: <br /> <input type="file" name="domaci" /> <br /><input type="submit" name="posalji" value="Pošalji!" /></form>

<?php define ("fajloviDomaci","C:\Program Files\Apache Software Foundation\

Apache2.2\htdocs\domaci\\");if (isset($_FILES['domaci'])){if (is_uploaded_file($_FILES['domaci']['tmp_name'])){ if ($_FILES['domaci']['type'] != 'application/msword'){ echo "<p> Domaći može biti aploudovan samo u *.doc formatu

</p>";} else {

Page 143: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Aploudovanje fajlova – sa vremenskim oznakama Nastavak primera: $datum=date("d-m-y"); if (!is_dir(fajloviDomaci.$datum)) {

mkdir(fajloviDomaci.$datum);} $brojIndeksa=$_POST['brojIndeksa']; $rezultat=move_uploaded_file($_FILES['domaci']

['tmp_name'],fajloviDomaci.$datum."\\"."_$brojIndeksa.doc");

if ($rezultat==1) echo "<p> Fajl je uspešno aploudovan. </p>";else echo "<p> Fajl nije aploudovan, pokušajte ponovo.

</p>";}}}?> Rezultat: poslat fajl se nalazi u folderu \domaci\03-05-2009

pod imenom _05-132.doc gde je 05-132 broj indeksa studenta koji je poslao fajl

Page 144: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa fajlovima Postoji veliki broj funkcija za rad sa

fajlovima, mogu se naći nahttp://www.php.net/manual/en/ref.filesystem.php Najvažnije funkcije:

fopen (imeFajla, mod [,uključiPutanju]) – tipa je resurs na koji se kasnije referiše, mod može biti “w”, “w+”, “r”… Može se koristiti putanja specificirana u httpd fajlu sa komandom include_path

fwrite (refFajla, string) fread (refFajla, brojBajtova) fclose (refFajla)

Page 145: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcije za rad sa fajlovima Primeri:

feof(refFajla) – kraj fajla filesize(imeFajla) rename(imeFajla1,imeFajla2) is_readable(imeFajla) file(imeFajla [,flag]) – pretvara fajl u niz

redova, flag može biti FILE_IGNORE_NEW_LINES, ili FILE_SKIP_EMPTY_LINES

Page 146: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa kolačićima Sintaksa:setcookie ( ime [, vrednost [, rok [, putanja [,

domen [, zaštita [, httponly ]]]]]] ) ime, vrednost su stringovi rok je rok trajanja kolačića u sekundama putanja je direktorijum odakle se može pristupiti

kolačiću domen je domen odakle se može pristupiti

kolačiću zaštita je TRUE ako se za setovanje kolačića traži

sigurna HTTPS konekcija httponly je TRUE ako se kolačić može menjati

samo kroz HTTP konekciju

Page 147: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa kolačićima: setovanje U folderu domaci se nalazi fajl kuki.php:<?php $vrednost = ‘Neka vrednost kolačića!';setcookie("testKolačić", $vrednost, time()

+3600, "/domaci/"); /* ističe za sat */if (isset($_COOKIE["testKolačić”])) {echo $_COOKIE["testKolačić"];}?>

Page 148: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa kolačićima: čitanje Primer: U koren (root) direktorijumu (C:\

Program Files\wamp\www) se nalazi kuki2.php:

<?php echo $_COOKIE["testKolačić"];?> Rezultat: Kada se pokrene kuki.php, a

zatim kuki2.php, na ekranu ništa nije ispisano, jer kuki2.php nije u dozvoljenom direktorijumu (folderu)

Page 149: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa kolačićima: čitanje Primer: U direktorijumu \domaci (C:\

Program Files\wamp\www\domaci) se sada nalazi kuki2.php:

<?php echo $_COOKIE["testKolačić"];?> Rezultat: Kada se pokrene kuki.php, a

zatim kuki2.php, na ekranu se pojavi:Neka vrednost kolačića!

Page 150: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa kolačićima: brisanje Za rok važnosti kolačića se setuje prošli

trenutak:<?php $vrednost = ‘Neka vrednost kolačića!';setcookie("testKolačić", $vrednost, time()-

3600, "/domaci/"); /* isteklo trajanje kolačića */echo $_COOKIE["testKolačić"];?>

Page 151: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Setovanje kolačića: Napomena Kolačić se setuje u zaglavlju koje se

šalje. Ukoliko se zaglavlje pošalje pre nego što je kolačić setovan, kolačić neće biti poslat.

Zato postavljanje polja u zaglavlju mora ići pre komande sa izlazom (npr. echo).

Alternativno se u fajlu php.ini uključi opcija output_buffering da bi HTTP zaglavlje čekalo i sadržaj

output_buffering=x

Page 152: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kolačić niz Primer:<?php

setcookie(“kuki[tri]", “kukitri");setcookie(“kuki[dva]", “kukidva");setcookie(“kuki[jedan]", “kukijedan");if (isset($_COOKIE[‘kuki'])) {    foreach ($_COOKIE[‘kuki'] as 

$indeks => $vrednost) {        echo "$indeks : $vrednost <br />\n”};}

?> Rezultat:tri : kukitridva : kukitrijedan : kukijedan

Page 153: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Konfiguracija sesija Parametri koji mogu da se konfigurišu

u php.ini session.save_handler files|mm|user

(određuje gde će biti sačuvane informacije o sesiji, na disku, u RAM-u ili u bazi podataka)

session.save_path putanja – putanja do direktorijuma sa fajlovima sesije

session.use_cookies 0|1 session.use_only_cookies 0|1 session.name string – po defoltu je

PHPSESSID (ime kolačića)

Page 154: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Konfiguracija sesija Parametri koji mogu da se

konfigurišu u php.ini session.auto_start 0|1 session.cookie_lifetime brojSekundi – po

defoltu 0 session.cookie_path string session.cookie_domain string

Page 155: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Konfiguracija sesija Parametri koji mogu da se konfigurišu

u php.ini session.gc_maxlifetime brojSekundi session.use_trans_sid = 0|1(omogućava automatsko dodavanje SID-a

URL-ovima) url_rewriter_tags string – po defoltu

a=href, area=href, frame=src, input=src, form=fakeentry

(ako je prethodni parametar 1, onda se svi linkovi ažuriraju da uključe SID)

Page 156: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Komande sesija Komande

session_start() – startovanje sesije session_unset() – oslobađanje svih

promenljivih pridružene sesiji session_destroy() – uništavanje sesije,

vraća TRUE ako je sesija uspešno uništena

Page 157: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Komande sesija Komande

session_id([string]) – setovanje ili čitanje ID sesije, SID-a:

session_name([string]) – setovanje ili čitanje imena sesije, po defoltu PHPSESSID, koji je ime kolačića čija je vrednost SID

session_get_cookie_params() session_set_cookie_params( rok [, putanja [, domen [, zaštita [, httponly ]]]]]] ) – ime

kolačića je ime sesije, a vrednost je SID

Page 158: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Dodeljivanje i brisanje vrednosti sesija

Dodeljivanje i brisanje vrednosti, primer:<?php

session_start();$_SESSION[‘username’]=“Jovan”;echo “Vaš username je: ” .$_SESSION[‘username’].

“. <br />”; unset($_SESSION[‘username’]); echo “Vaš username je sada: ” .$_SESSION[‘username’]. “.”;?> Rezultat:Vaš username je: Jovan.Vaš username je sada: .

Page 159: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer sesije prosleđene preko URL-a U fajlu sesija.php:<?php session_start();$_SESSION["username"]="Jovan";echo "Vaš username je:" .

$_SESSION["username"].". <br />";echo session_name(), "<br />";echo session_id(), "<br />";?><a href="http://localhost/sesija2.php?<?php

echo SID; ?>"> Link ka drugoj stranici </a>

Page 160: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer sesije prosleđene preko URL-a U fajlu sesija2.php:<?php session_start();echo "Vaš username je:“.

$_SESSION["username"].". <br />";echo session_name(), "<br />";echo session_id(), "<br />";?>

Page 161: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer sesije prosleđene preko URL-a

Page 162: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer sesije prosleđene preko kolačića U fajlu sesija3.php:<?php session_name('NovoIme');session_id('jlkfjs624628');session_start();$_SESSION["username"]=“Pera";echo "Vaš username je:" .$_SESSION["username"].". <br />";echo session_name(), "<br />";echo session_id(), "<br />";?>

Page 163: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer sesije prosleđene preko kolačića U fajlu sesija4.php:<?php session_name('NovoIme');session_start();echo "Vaš username je:“.

$_SESSION["username"].". <br />";echo session_name(), "<br />";echo session_id(), "<br />";?>

Page 164: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer sesije prosleđene preko kolačića

Page 165: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Trajanje sesije prosleđene kolačićima Ukoliko u prethodnom slučaju ukucamo u

brauzer URL fajla http://localhost/sesija4.php, dobićemo isti rezultat u brauzeru. Ukoliko zatvorimo brauzer, i ukucamo isti URL izgubiće se podaci o sesiji, tj. vrednost polja username.

Trajanje kolačića se može produžiti ili konfiguracijom u php.ini fajlu, ili komandom pre session_start():

session_set_cookie_params(rok);

Page 166: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

XHTML e-meil podsetnik Primer slanja e-meila:<a href="mailto:[email protected]?subject=Primer

poruke&body=Napišite vaš komentar"> Pošaljite e-mail poruku! </a>

Page 167: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Slanje formulara e-meilom Primer:<html><form method="post" action="mailto: [email protected]?

subject=primer">Ime i prezime: <input type="text" name="ime_prez"

value="Unesite ime i prezime" size="30" /> <br />Proizvod: <input type="text" name="proizvod"

value="Unesite proizvod" size="30" /> <br />Adresa: <br /><textarea name="adresa" rows="6" cols="30" >

</textarea><input type="submit" value="Pošalji"></form></html>

Page 168: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Slanje formulara e-meilom

Page 169: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Konfiguracija i-meil servisa U fajlu php.ini

SMTP string – definiše SMTP server, po defoltu localhost

sendmail_from string– definiše e-meil pošaljioca

smtp_port ceoBroj – po defoltu 25 sendmail_path string – definiše

putanju do sendmail klijenta, koji se povezuje sa serverom

Page 170: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Konfiguracija i-meil servisa Da bi se pokrenuo meil servis

potrebno je implementirati meil server i povezati ga sa wamp serverom.

PHPMailer implementira siguran prenos i-meila uz upotrebu SSL/TLS protokola

http://blog.techwheels.net/send-email-using-wamp-server/

Page 171: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

e-mail pomoću PHP Najvažnija funkcija je mail, čija je

sintaksamail (to, subject, poruka [,

dodatnaZaglavlja [, dodatniParametri]])

Jednostavan primer:mail(“[email protected]” , “Kratko”,

“Prvi PHP e-meil”);

Page 172: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

e-mail pomoću PHP Primer:$zagl=“From:[email protected]\r\n”;$zagl.=“Bcc:[email protected]”;$zagl.=“Reply-To:[email protected]\r\n”;$zagl.=“Content-Type:text/plain;\r\n

charset=iso-8859-1\r\n”;$primaoci=“[email protected],[email protected]”;

mail($primaoci, “Kratko”, “Drugi PHP e-

meil”,$zagl);

Page 173: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Formular za slanje e-meila Primer formulara za slanje e-meila, u fajlu

emeilform.php<?phpif (isset($_POST['upis'])){$zagl="From:".$_POST['emeilPosh‘]."\r\n";$zagl.="Content-Type:text/plain;\r\n charset=iso-

8859-2\r\n";$primaoc=$_POST['emeilPrim'];$tema=$_POST['imePrez']; mail($primaoc, $tema, $_POST['poruka'],$zagl);} ?

>

Page 174: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Formular za slanje e-meila Nastavak fajla emeilform.php:<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"></head> <form method="post" action="emeilForm.php">Ime i prezime: <input type="text" name="imePrez" value="Unesite ime i

prezime" size="30" /> <br />Od: <input type="text" name="emeilPosh" value="Unesite svoj e-meil"

size="30" /> <br />Za: <input type="text" name="emeilPrim" value="Unesite e-meil primaoca" size="30" /> <br />Adresa: <br /><textarea name="poruka" rows="6" cols="30" > Unesite tekst </textarea><input type="submit" name='upis' value="Pošalji"></form></html>

Page 175: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Formular za e-meil

Page 176: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Autentifikacija Autentifikacija se zasniva na HTTP

autentifikaciji opisanoj u IETF RFC2617 Pomoću funkcije header() se šalju

komande brauzeru da treba traži login podatke od korisnika

Podaci koje je korisnik ukucao se nalaze u superglobalnoj promenljivoj $_SERVER ['PHP_AUTH_USER'], i $_SERVER['PHP_AUTH_PW']

Page 177: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Autentifikacija: Primer kada su lozinke u fajlu Fajl koji sadrži korisnička imena i

lozinke je lozinke.txtaleks : 12cikpogodipera : 3jhkj34milan : 89kjlkjalmarija : 98nkj32kk

Page 178: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Autentifikacija: Primer kada su lozinke u fajlu Kod koji generiše fajl sa kriptovanim lozinkama<?php $lozinke = file("lozinke.txt");$fl=fopen("sifrovaneLozinke.txt","w");foreach ($lozinke as $login){

list($username,$lozinka)=explode(":",$login); $lozinka=trim($lozinka); $username=trim($username);

fwrite($fl,$username.":".md5($lozinka)."\n");}fclose($fl);?>

Page 179: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Autentifikacija: Primer kada su lozinke u fajlu Fajl sa kodom za autentifikaciju:<?php $autorizovan = FALSE;if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {$sifLoz = file("sifrovaneLozinke.txt");

if (in_array($_SERVER['PHP_AUTH_USER'].":".md5($_SERVER['PHP_AUTH_PW'])."\n", $sifLoz))$autorizovan = TRUE;}

if (! $autorizovan) {header('WWW-Authenticate: Basic Realm');header('HTTP/1.0 401 Neautorizovan');/* Ako korisnik ukuca Cancel dobija se sledeće */print('Morate dati ispravne login podatke!');exit;}echo "Materijal sa restrikcijama ..."?>

Page 180: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Autentifikacija: Primer kada su lozinke u fajlu

Page 181: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

PHP i DOM (Document Object Model) DOM je interfejs sa veb stranom kao

hijerarhijskom strukturom Pomoću PHP-a se mogu čitati,

dopisivati, ili menjati pojedini elementi veb strane.

Sve klase koje čine DOM:http://php.net/manual/en/

book.dom.php

Page 182: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

DOM klasa DOMNode i njeni metodi

DOMNode::appendChild – Dodaje dete DOMNode::cloneNode — Klonira nod (element) DOMNode::getNodePath — Nalazi putanju do

noda DOMNode::hasAttributes — Proverava da li nod

ima atributa DOMNode::hasChildNodes — Provera da li nod

ima dece DOMNode::insertBefore — Dodaje novi čvor pre

datog noda DOMNode::removeChild — Uklanja dete DOMNode::replaceChild — Zamenjuje dete ...

Page 183: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Osobine DOMNode klase

nodeName, nodeValue, nodeType, parentNode, childNodes, firstChild, lastChild, previousSibling, nextSibling, attributes, textContent...

Page 184: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

DOM klasa DOMDocument i njeni metodi DOMDocument::createElement — Kreiraj novi element DOMDocument::createTextNode — Kreiraj novi tekst

element DOMDocument::getElementById — Nadji element sa datim

ID-em DOMDocument::getElementsByTagName — Nadji

elemente sa datim imenom taga DOMDocument::loadHTML — Upiši HTML element iz stringa DOMDocument::loadHTMLFile — Upiši HTML element iz

fajla DOMDocument::saveHTML — Sačuvaj HTML element u

string DOMDocument::saveHTMLFile — Sačuvaj HTML element u

fajl ...

Page 185: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

DOM klasa DOMElement i njene metode DOMElement::getAttribute — Vrednost atributa DOMElement::getAttributeNode — Daje atribut ali kao

element hijerarhijskog dokumenta DOMElement::getElementsByTagName — Daje

elemente sa datim tagom DOMElement::hasAttribute — Proverava da li element

ima dati atribut DOMElement::removeAttribute — Uklanja atribute DOMElement::removeAttributeNode — Uklanja atribut

definisan kao element DOMElement::setAttribute — Dodaje nov atribut DOMElement::setAttributeNode — Dodaje novi atribut

kao element ...

Page 186: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer rada sa DOM klasama

Primer rada sa DOM klasama<?php

$domDokument = new DOMDocument('1.0', "UTF-8");$domElement = $domDokument-> createElement(“field”,”neki podaci”);$domAtribut = $domDokument-> createAttribute(“ime”);$domAtribut->value = “vrednost atributa”;$domElement->appendChild($domAtribut);$domDokument->appendChild($domElement);

$stringRezultat= $domDokument->saveXML(); echo $stringRezultat;

?> Rezultat

<?xml version="1.0" encoding="UTF-8"?><field ime=“vrednost atributa">”neki podaci”</field>

Page 187: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer rada sa čvorovima Primer<?php

    $doc = new DOMDocument();    $foo = $doc->createElement("foo");    $doc->appendChild($foo);    $bar = $doc->createElement("bar");    $foo->appendChild($bar);    $bazz = $doc->createElement("bazz");    $foo->appendChild($bazz);    echo $doc->saveXML();?>

Dobija se:<foo>  <bar></bar>  <bazz></bazz></foo>

Page 188: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Primer rada sa DOM hijerarhijskom strukturom<?php $xml = <<<XML <?xml version="1.0"?> <userdata>

<name>Jovan</name> <name>Pera</name></userdata> XML; $doc = new DOMDocument(); $doc->loadXML($xml); $names = $doc->firstChild->

getElementsByTagName("name"); $myname = $names->item(0)->nodeValue;echo ($myname);

Page 189: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

4. PHP i baze podataka Uvod Konfigurisanje privilegija mySQL komande PHP komande za rad sa mySQL (my

Structured Query Language) bazama podataka

Page 190: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

MySQL Najpoznatija i najviše korišćena open-sors

baza podataka zasnovana na SQL jeziku Korišćenje ove baze podataka je besplatno MySQL komande su neosetljive na veličinu

slova (case sensitive), ali je praksa se pišu velikim slovima. Promenljive su osetljive na veličinu slova.

Uputstvo za korišćenje MySQL baze se može naći na:

http://dev.mysql.com/doc/refman/5.6/en/index.html

Page 191: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Tržište baza podataka 2013

www.vertabelo.com

Page 192: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

MySQL i druge open-sors baze 2014

jelastic.com

Page 193: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Baze podataka Baze podataka se sastoje iz tabela, koje

se sastoje iz kolona Korisnici mogu pristupati ovim bazama,

tabelama, kolonama u zavisnosti od svojih privilegija koje se prethodno konfigurišu

Pristup može biti radi kreiranja baze, brisanja baze, dodavanja ili menjanja informacija u bazi, i brisanja informacija u bazi

Page 194: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Konfigurisanje MySQL baza podataka i privilegija

Može se pristupiti koristeći razne klijente: mysql klijent podrazumeva šel komandni

interfejs, i može da konfiguriše baze podataka i da im pristupa

mysqladmin klijent se fokusira na administrativne komande

MySQL Administrator je GUI klijent razvijen od strane mySQL tima

phpMyAdmin je GUI klijent prilagođen PHP-u

Page 195: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Organizacija privilegija Privilegije se zapravo nalaze u mysql bazi

podataka, koja se sastoji iz sledećih tabela: user – određuje korisnike koji mogu da se loguju na

server sa bilo kog hosta i njihove privilegije db – određuje koji korisnici mogu da pristupe kojim

bazama podataka host – određuje hostove sa kojih se može pristupiti

kojim bazama tables_priv: određuje koji korisnici mogu da pristupe

kojim tabelama date baze columns_priv: određuje koji korisnici mogu da

pristupe kojim kolonama date tabele date baze

Page 196: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

mysql tabela userColumn Datatype Null Default

Host char(60) binary No No

User char(16) binary No No

Password char(41) binary No No

Select_priv enum(‘N’, ‘Y’) No N

Insert_priv enum(‘N’, ‘Y’) No N

Update_priv enum(‘N’, ‘Y’) No N

… … … …

Page 197: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

mysql tabela dbColumn Datatype Null Default

Host char(60) binary No No

Db char(64) binary No No

User char(16) binary No No

Select_priv enum(‘N’, ‘Y’) No N

Insert_priv enum(‘N’, ‘Y’) No N

Update_priv enum(‘N’, ‘Y’) No N

… … … …

Page 198: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

mysql tabela hostColumn Datatype Null Default

Host char(60) binary No No

Db char(64) binary No No

Select_priv enum(‘N’, ‘Y’) No N

Insert_priv enum(‘N’, ‘Y’) No N

Update_priv enum(‘N’, ‘Y’) No N

Delete_priv enum(‘N’, ‘Y’) No N

… … … …

Page 199: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

mysql tabela tables_privColumn Datatype Null Default

Host char(60) No No

Db char(64) No No

User Char(16) No No

Table_name char(64) No No

Grantor Char(77) No No

Timestamp timestamp Yes Current timestamp

Table_priv skupPrivilegija No No

Column_priv skupKolona No No

Page 200: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

mysql tabela columns_privColumn Datatype Null Default

Host char(60) No No

Db char(64) No No

User Char(16) No No

Table_name char(64) No No

Column_name Char(64) No No

Timestamp timestamp Yes Null

Column_priv skupPrivKolona No No

Page 201: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

mysql tabela procs_privColumn Datatype Null Default

Host char(60) No No

Db char(64) No No

User Char(16) No No

Routine_name char(64) No No

Routine_type enum No No

Grantor Char(77) binary No No

Proc_priv skupKolona No No

Timestamp timestamp Yes Null

Page 202: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kreiranje i brisanje korisnika baze

Korisnik se kreira bez privilegija naredbom:

CREATE USER korisnik1 [IDENTIFIED BY [PASSWORD] ‘lozinka1']

[, korisnik2 [IDENTIFIED BY [PASSWORD] ‘lozinka2']…]

Primer:mysql> CREATE USER ‘aleks’@ ‘localhost’

IDENTIFIED BY “12cikpogodi”; Korisnik se briše komandomDROP USER korisnik1 [, korisnik2…]

Page 203: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Dodeljivanje privilegija korisniku Privilegije se dodeljuju naredbomGRANT tipPrivilegije1 [(listaKolona1)] [,

tipPrivilegije2 [(listaKolona2)] ...]ON {imeTabele | * | *.* | imeBaze.*}TO korisnik1 [IDENTIFIED BY ‘lozinka1'][, korisnik2 [IDENTIFIED BY ‘lozinka2'] ...][REQUIRE {NONE|SSL|X509|ISSUER

sertifikacionoTelo}] [WITH opcija] Primermysql> GRANT UPDATE ON knjige.* TO ‘marija’@

‘192.168.1.103’;

Page 204: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Oduzimanje privilegija korisniku Privilegije se oduzimaju korisniku

naredbom:REVOKE tipPrivilegije1 [(listaKolona1)] [,

tipPrivilegije2 [(listaKolona2)] ...]ON {imeTabele | * | *.* | imeBaze.*}FROM korisnik1 [, korisnik2 ...] Primer:mysql> REVOKE INSERT ON knjige.* FROM

‘marija’@‘192.168.1.102’;

Page 205: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

SELECT dozvoljava korisnicima da selektuju (čitaju) zapise iz tabela.

INSERT dozvoljava korisnicima da upisuju nove zapise (redove) u tabelu.

UPDATE dozvoljava korisnicima da menjaju postojeće zapise u tabelama.

DELETE dozvoljava korisnicima da brišu zapise (redove) iz tabela

INDEX dozvoljava korisnicima da indeksiraju tabele, što omogućava brže pretraživanje

Tip korisničkih privilegija

Page 206: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

CREATE dozvoljava kreiranje baza ili tabela

ALTER dozvoljava korisnicima da menjaju strukturu baze podataka. Dodavanje novih kolona Promena imena kolona ili tabela Promena tipa podataka u okviru tabela

DROP dozvoljava brisanje baza podataka ili tabela

Tip korisničkih privilegija

Page 207: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

USAGE daje minimalne privilegije. Ova opcija je korisna ako se želi samo kreirati novi korisnik.

Ima i drugih tipova: CREATE USER, PROCESS, SHOW DATABASES.

Kompletna lista na:http://dev.mysql.com/doc/refman/5.6/

en/grant.html

Tip korisničkih privilegija

Page 208: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

MySQL komande Najvažnije komande: CREATE,

DROP, SELECT, INSERT, DELETE, UPDATE

Kompletan spisak komandi:http://dev.mysql.com/doc/refman/

5.6/en/sql-syntax.html

Page 209: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kreiranje baze i brisanje baze Baza podataka se kreira jednostavnom

naredbom:CREATE DATABASE imeBaze; Baza podataka se briše naredbomDROP DATABASE imeBaze; U bazu se ulazi naredbomUSE imeBaze; Alternativno tabela i kolone se zovu:imeBaze.imeTabele i imeBaze.imeTabele.imeKolone

Page 210: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kreiranje tabele CREATE TABLE [IF NOT EXISTS] imeTabele (imeKolone1 tipKolone1 [atributiKolone1],

[imeKolone1 tipKolone2 [atributiKolone2],…]); Primer:CREATE TABLE zaposleni (id INT UNSIGNED NOT NULL AUTO_INCREMENT

PRIMARY KEY,ime VARCHAR(25) NOT NULL,prezime VARCHAR(25) NOT NULL,telefon VARCHAR(45) NOT NULL);

Page 211: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Tip i atributi kolona Tipovi kolona mogu biti INT, FLOAT, DOUBLE, INT

UNSIGNED, DATE, TIMESTAMP, CHAR, NATIONAL CHAR CHARACTER SET imeAlfabeta, [NATIONAL] [CHARACTER SET charset_name] VARCHAR (dužina)

Kompletna lista tipova se može naći na:http://dev.mysql.com/doc/refman/5.6/en/data-type-

overview.html Atributi kolona su: DEFAULT vrednost,

AUTO_INCREMENT, NOT NULL, PRIMARY KEY, UNIQUE,... Kompletna lista:

http://dev.mysql.com/doc/refman/5.6/en/create-table.html

Page 212: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Menjanje tabela Tabela se menja komandomALTER TABLE imeTabele [ADD COLUMN|

CHANGE|DROP] [imeKolone1] imekolone2 [,tipKolone2[,atributiKolone2]] [AFTER imekolone3]

Primer:ALTER TABLE zaposleni ADD COLUMN email

VARCHAR(20) AFTER telefon;

Page 213: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Čitanje podataka iz baze Sintaksa komandeSELECT izrazKolona1 [,izrazKolona2 …]

[FROM imeTabele1[,imeTabele2…] [GROUP BY {imeKolone3|izrazKolona3}][WHERE uslov]][ORDER BY imeKolone [ASC|

DESC]] Primer:SELECT name, address FROM customers

ORDER BY name ASC

Page 214: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Funkcije koje koriste kolone AVG(imeKolone) daje prosečnu vrednost

kolona COUNT(imeKolone) daje broj ne NULL

vrednosti u okviru kolone COUNT(DISTINCT imeKolone) daje broj

različitih vrednosti u okviru kolone MIN(imeKolone), MAX(imeKolone) STD(imeKolone) daje standardnu devijaciju SUM(imeKolone) zbir vrednosti kolona LOCATION(imeKolone,string) lociranje

vrednosti kolone u stringu

Page 215: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Korišćenje funkcijaSELECT AVG(cena) FROM kupovine; Korišćenje funkcija i grupisanja,

nalazi minimalnu cenu koju je platio svaki kupac

SELECT MIN(cena) FROM kupovineGROUP BY id_kupca;

Primeri čitanja kolona uz pomoć funkcija

Page 216: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Upisivanje podataka u bazu Sintaksa za upisivanje novog zapisa u

tabelu: INSERT INTO tabela VALUES (vrednost1,

vrednost2, ..); Primer:INSERT INTO proizvodi VALUES

('',‘Jabuke',1.23); U primeru za vrednost prve kolone je

korišćen prazan string jer je kolona definisana kao AUTO_INCREMENT.

Page 217: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Brisanje podataka iz baze Opšta sintaksa je:DELETE FROM imeTabele [WHERE

uslov] [ORDER BY ...] [LIMIT broj] Primer:DELETE FROM zaposleni WHERE

zaposleni.ime=‘Marko'

Page 218: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Ažuriranje podataka u bazi Opšta sintaksa je:UPDATE tabela SET imeKolone1=izraz1,imeKolone2=izraz2,... [WHERE uslov] [ORDER BY ...] [LIMIT broj] ; PrimerUPDATE studenti SET

email=‘[email protected]'WHERE ime=‘Nataša Maksić';

Page 219: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

PHP komande za rad sa MySQL bazom

Razvijen je skup funkcija za rad sa MySQL bazama, od kojih su najvažnije: mysqli_connect, mysqli_close, mysqli_select_db, mysqli_query, mysqli_db_query, ...

Kompletna lista se može naći na stranicihttp://www.php.net/manual/en/

class.mysqli.php

Page 220: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

PHP klase za rad sa MySQL bazom

Razvijen je skup funkcija za rad sa MySQL bazama, od kojih su najvažnije: mysqli::query, mysqli_result::fetch_all, mysqli::close, ...

Kompletna lista se može naći na stranicihttp://www.php.net/manual/en/class.mysqli.php

Page 221: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Sintaksalink=mysqli_connect(host[,korisnik[,lozinka[,

baza]]) mysqli_close(link) Primer:$l=mysqli_connect(“localhost”, “aleks”,

“12cikpogodi”);mysqli_close($l);

Uspostavljanje i raskidanje veze sa bazom

Page 222: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Sintaksalink= new mysqli(host[,korisnik[,lozinka[,

baza]]) link->close() Primer:$l=new mysqli(“localhost”, “aleks”,

“12cikpogodi”);$l->close();

Uspostavljanje i raskidanje veze sa bazom pomoću klasa

Page 223: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kreiranje, brisanje i ispisivanje baza

Sintaksa kreiranja i brisanja baza:mysqli_query (link [, upit]) Primer kreiranja baze:$veza=mysqli_connect ('localhost');$sql='CREATE DATABASE IF NOT

EXISTS katedra DEFAULT COLLATE utf8_general_ci';

mysqli_query ($veza,$sql);

Page 224: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kreiranje, brisanje i ispisivanje baza-klase Sintaksa kreiranja i brisanja baza:$veza->query (upit) Primer kreiranja baze:$veza=new mysqli('localhost');$sql='CREATE DATABASE IF NOT

EXISTS katedra DEFAULT CHARACTER SET utf8';

$veza->query($sql);

Page 225: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kreiranje, brisanje i ispisivanje tabele-klase

Primer kreiranja baze:$veza=new mysqli('localhost‘, NULL,

NULL, ‘firma’);$sql=“CREATE TABLE Zaposleni

(ID int PRIMARY KEY, Prezime varchar(255),

Ime varchar(255), Adresa varchar(255), Grad varchar(255));”

$veza->query($sql);

Page 226: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

PHP komande za čitanje iz baze Metode klase mysqli_result nahttp://www.php.net/manual/en/

class.mysqli-result.php Metode:$rez=$veza->mysqli($upit);$rez->fetch_all();$rez->fetch_assoc();$rez->fetch_array();

Page 227: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Čitanje iz baze pomoću PHP-a Primer:<?php if isset($_POST[‘unesi’]){

$veza=new mysqli(“localhost”, “aleks”, “tajna”, “kompanija”);

$upit=“SELECT proizvod,cena FROM proizvodi WHERE cena<‘{$_POST[‘maxcena’]}’”;

$rez=$veza->query($upit);while ($red=$rez->fetch_assoc()){echo $red[‘proizvod’].”:”. $red[‘cena’];}}?>

Page 228: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Brisanje iz baze pomoću PHP-a Primer:<?php if isset($_POST[‘unesi’]){

$veza=new mysqli(“localhost”, “aleks”, “tajna”, “kompanija”);

for ($i=0; $i<count($_POST[‘IDreda’]); $i++){$IDreda=$_POST[‘IDreda’][$i];$upit=“DELETE FROM proizvodi WHERE

IDreda=‘$IDreda’”;$rez=$veza->query($upit);}if ($rez) echo “Podaci izbrisani!”$veza->close();}?>

Page 229: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Upis u bazu pomoću PHP-a Primer:<?php if isset($_POST[‘submit’]){$veza=new mysqli(“localhost”, “aleks”, “tajna”,

“kompanija”);$IDproizvoda=$_POST[‘IDproizvoda’];$naziv=$_POST[‘naziv’];$cena=$_POST[‘cena’];$upit=“INSERT INTO proizvodi SET

IDproizvoda=‘$IDproizvoda’, naziv=‘$naziv’ cena=‘$cena’”;

$rez=$veza->query($upit);If ($rez) echo “Podaci ubačeni!”;}?>

Page 230: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

PHPMyAdmin

Page 231: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Users: dodavanje korisnika

Page 232: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Users: dodavanje korisnika Ide se na Add User Izabere se korisničko ime, šifra, i

host Ovi podaci se koriste kada se

konektuje na server pomoću komandi mysqli_connect(), ili new mysqli()

Page 233: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Rad sa bazama i tabelama

Page 234: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Export: čuvanje baze

Page 235: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Export: čuvanje baze Ide se sa localhost-a (NE udje se

ubazu) na Custom opciju za Export Method

Izabere se baza Dodaju se komande DROP, CREATE,

USE, baze Zatim klikne na Go

Page 236: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Domaći mogu da se rade i na Portabilan XAMPPhttp://portableapps.com/apps/

development/xampp

Page 237: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kodiranje fajla u brauzeru Na (X)HTML stranici se definiše

kodiranje (UTF-8) Alternativno, u httpd.conf fajlu se doda

komanda AddDefaultCharset UTF-8 Ili se u .htaccess fajl doda komanda i

onda se u folderu u kome je .htaccess fajl primenjuje pravilo

AddDefaultCharset UTF-8

Page 238: Internet programiranje PHP. Uvod HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru PHP je jedan od programskih jezika

Kodiranje znakova u bazi Pri kreiranju baze, tabela i kolona

definiše se njihov alfabet, odnosno CHARACTER SET i COLLATION

Da bi se u bazi videla slova srpske azbuke, na primer, potrebno je poslati podatke bazi koristeći utf-8 kodiranje naredbom

mysqli_set_charset($veza,"utf8");