You are on page 1of 11

Rezime za modul

×
Definicija instalacija i osnove PHP-a

Instalacija i priprema za rad


 PHP je jezik koji se interpretira, te ne može raditi bez
programa za interpretaciju;
 Značajan deo sintakse PHP-a je identičan sintaksi jezika C;
 Najčešća upotreba PHP-a je u izgradnji dinamičkih web
aplikacija;
 PHP ne može emitovati HTML strane bez web servera ;
 PHP se može izvršavati na različitim web serverima;
 PHP kod može biti pisan u bilo kom alatu za editovanje
teksta;
 Da bi dokument bio prosleđen PHP-u, mora imati
ekstenziju .php;
 Da bi skripta unutar dokumenta bila startovana, mora biti
aktivirana PHP tagovima <?php ?> ili <? ?> ;
 Uz pomoć PHP-a nije moguće praviti animacije u
pretraživaču.

Tipovi podataka
 Tipovi podataka se u osnovi dele na proste, složene i
specijalne;
 Prosti tipovi su: integer, float, string i boolean, složeni
tipovi su: array i object, a specijalni Resource i NULL;
 Nizovi sadrže kolekcije podataka, pri čemu se u promenljivoj
pamti adresa početka ove kolekcije;
 PHP je u stanju da automatski uzajamno konvertuje proste
tipove;
 Nije moguće konvertovati prosti u složeni tip;
 Postoji više vrsta notacije numeričkih tipova: oktalna,
heksadecimalna, decimalna...

Promenljive – varijable
 Promenljive u PHP-u moraju ispred imena sadržati znak $
($mojaPromenljiva);
 Promenljive u PHP-u kao prvi znak imena ne smeju imati broj
ili specijalni karakter ($1mojaPromenljiva – nepravilno, $
%mojaPromenljiva – nepravilno);
 Konstante u PHP-u ne moraju imati znak $ ispred
imena. define("PI", 3.14);
 Konstante u PHP-u mogu biti bilo kog tipa (koji je podržan
od strane jezika).

Operatori
 Operatori služe za dodeljivanje vrednosti, poređenje dve
vrednosti, pridruživanje izraza ili vršenje aritmetičkih
operacija nad vrednostima;
 Postoji više vrsta operatora. Najvažniji su: operatori
poređenja, aritmetički operatori, logički operatori i operatori
dodeljivanja;
 Operatori poređenja su: ==, !=, <, >, <=, >=, ==, !==,
operatori dodeljivanja su: =, logički operatori su &&, || i
aritmetički operatori su: +, -, /, *, % ;
 Dodeljivanje se može izvršiti po vrednosti ili po referenci;
 Prilikom primene inkrementalnog ili dekrementalnog
operatora nije isto ako se operator postavi pre ili nakon
promenljive;
 Prilikom upotrebe aritmetičkog operatora, PHP će, ukoliko je
to moguće, sam izvršiti konverzaciju na odgovarajuće tipove.

Rezime za modul
×
Kontrola toka

Naredbe grananja
 if else strukture omogućavaju uslovno izvršavanje nekog
bloka koda;
 Ukoliko uslovno izvršeni blok ima više od jedne linije, treba
da bude u vitičastim zagradama (u bloku);
 Uslovni izraz if else strukture mora biti boolean tipa;
 Moguće je uslovno dodeliti vrednost uz pomoć ternarnog
operatora;
 if else strukture je moguće gnezditi jednu u drugu;
 Ako hoćemo da jednoj if else strukturi dodamo još jednu,
koristimo if else if strukturu;
 Operatori koji se koriste u uslovnim izrazima su operatori
poređenja.

switch – case struktura


 switch–case struktura omogućava izvršavanje jednog bloka
na osnovu vrednosti promenljive;
 switch–case struktura počinje i završava se vitičastim
zagradama;
 Svaki slučaj switch-case strukture naziva se case;
 Case prihvata neku vrednost i poredi je sa vrednošću ulazne
promenljive;
 Case može prihvatiti i izraz ili funkciju kao sredstvo
poređenja;
 Telo svakog slučaja (case) može i ne mora biti u vitičastim
zagradama;
 Nakon ispunjenog uslova, program će nastaviti izvršavanje
strukture, sve do njenog napuštanja;
 Napuštanje switch strukture obično se izvršava
naredbom break.

for petlja
 U PHP-u postoji nekoliko vrsta petlji: for, while, foreach i
njihove varijacije;
 for petlju upotrebljavamo kada znamo njene inicijalne
vrednosti (koliko će se puta izvršiti);
 For petlja podrazumeva inicijalizaciju iz tri dela: inicijalizacija
brojača, uslov brojača i inkrement/dekrement brojača;
 For petlja ne mora imati sva tri inicijalna parametra;
 Foreach petlja se koristi za čitanje nizova;
 Foreach petlja može čitati vrednosti ili ključeve i vrednosti iz
niza;
 Petlja se može bezuslovno prekinuti ključnom rečju break;
 Iteracija petlje se može preskočiti ključnom rečju continue.

while petlja
 While i do while vrše ponavljanje jednog istog zadatka
određeni broj puta;
 While i do while su petlje koje kreiramo kada ne znamo
koliko će tačno puta neki proces morati da bude izvršen;
 While petlja podrazumeva stupanje u telo petlje i njegovo
izvršavanje samo ukoliko je uslov petlje ispunjen;
 Do while petlja podrazumeva obavezno izvršavanje bar jedne
iteracije petlje, pre nego što do provere uopšte i dođe;
 While i do while petlje je moguće prekinuti ključnom rečju
break;
 Moguće je preći na sledeću iteraciju while i do while petlje
ključnom rečju continue;
 While i do while petlja podrazumeva uslovni izraz, čija
vrednost mora biti tipa boolean;
 Izvršenje while i do while petlje se vrši ručno, unutar petlje i
zato treba paziti da se ne upadne u mrtvu petlju.

Rezime za modul
×
Funkcije

Uključenje fajlova
 U PHP-u možete uključiti kod iz eksternih fajlova u aktuelni
kod;
 Naredbe i funkcije za importovanje eksternih fajlova su
include, require, include_once i require_once;
 Ako izvršenje programa zavisi od eksternog koda, koristite
require ili require_once;
 Ako izvršenje koda nije zavisno od eksternog koda, koristite
include ili include_once;
 require i require_once bezuslovno prekidaju izvršenje
programa ako fajl ne postoji;
 include i include_once nastavljaju izvršenje programa ako fajl
ne postoji.

Funkcije
 Funkcije su jedan od ključnih elemenata OOP-a;
 Postoje ugrađene i korisnički definisane funkcije;
 Funkcija se može definisati bilo gde u kodu, a poželjno je na
početku;
 Funkcije primaju parametre i vraćaju rezultat;
 Funkcije mogu imati i podrazumevane vrednosti parametara;
 Promenljive deklarisane u funkciji nisu dostupne van funkcije;
 Da bi promenljive bile dostupne van funkcije, potrebno je
korišćenje ključne reči global;
 Funkcijama se smanjuje veličina koda;
 Funkcijama se povećava portabilnost koda.

Rezime za modul
×
Nizovi

Rad sa nizovima
 Podrazumevani način indeksiranja u PHP-u, ako se radi o
numeričkom indeksiranju, počinje od 0;
 Niz može biti kreiran i korišćenjem funkcije array();
 count(), sizeof() vraćaju dužinu niza;
 sort(), asort(), rsort(), ksort(), krsort() funkcije se koriste za
sortiranje nizova;
 shuffle() funkcija se koristi za proizvoljno raspoređivanje
elemenata niza;
 explode(), implode() funkcije se koriste za konvertovanje
stringa u niz i obrnuto;
 array_diff( $niz1, $niz2, ... ) funkcija identifikuje elemente u
navedenim nizovima koji se razlikuju;
 array_sum() funkcija sabira vrednosti koje su elementi niza;
 array_unique() – Pomoću ove funkcije moguće je ukloniti iste
elemente jednog niza;
 array_merge($imeNiza1,  $imeNiza2) funkcija vam
omogućava da dva niza spojite u jedan;
 U PHP-u je moguće kreirati novi niz kao podskup nekog već
postojećeg pomoću funkcije array_slice($imeNiza, pozicija,
dužina).

Višedimenzionalni nizovi i funkcionalnost nad nizovima


 PHP podržava nizove nizova, odnosno višedimenzionalne
nizove;
 Da bi se formirao višedimenzionalni niz, za članove niza
inicijalizuju se takođe nizovi;
 FIFO i LIFO su dva različita odnosa prema podacima u
kolekciji podataka, odnosno, dve različite vrste kolekcije
podataka. FIFO – queue, LIFO – stack;
 PHP podržava nizove parova ključeva i vrednosti;
 Nizovima se može rukovati preko petlji, funkcija ili putem
direktnog pristupa indeksima.

Rezime za modul
×
Stringovi

Obrada stringova
 print( ) i echo() su najjednostavnije funkcije za ispis teksta;
 printf()koja prikazuje statički i dinamički tekst;
 Funkcija sprintf() tekst smešta u novu promenljivu;
 trim( ) – uklanja prazna mesta na početku i na kraju stringa;
 ltrim( ) – uklanja prazna mesta na početku stringa;
 rtrim( ) – uklanja prazna mesta na kraju stringa;
 str_word_count( ) – razbija tekst na reči i smešta ih u niz ili
prebrojava reči u stringu;
 strpbrk(string, char) – traži karakter char u tekstu string;
 strtoupper(string) – prebacuje sva slova u velika;
 strtolower(string) – prebacuje sva slova u mala.
Napredni stringovi i paterni
 Postoji nekoliko načina za zapis stringova i mnoštvo funkcija
za rukovanje njima;
 PHP je u stanju da parsira string tako što će iz njega izvući
komponente bitne za izvršenje programa (promenljive);
 Razlika između dvostrukih i jednostrukih navodnika je,
između ostalog, što dvostruki navodnici dozvoljavaju
parsiranje promenljivih unutar stringa, a jednostruki ne;
 Stringove je moguće formatirati po potrebi izlaza;
 Moguće je prebrojati karaktere stringa (funkcija strlen);
 Moguće je promeniti određeni deo stringa nekim drugim
stringom (str_replace);
 Moguće je izdvojiti određeni tekst u nekom stringu (substr).

Rezime za modul
×
Bezbednost i debug

Bezbednosni koncepti
 Bezbednost PHP web aplikacije najranjivija je na ulazu;
 Korisnički ulaz vrši se putem korisničkih kontrola;
 Svaki nesiguran podatak koji ulazi u PHP aplikaciju treba
filtrirati;
 U procesu filtracije razlikujemo pojmove crne i bele liste;
 Na ulazu treba proveravati kontrole i referera;
 Na izlazu treba proveravati korisnički definisane sadržaje;
 Kod baze podataka treba proveravati SQL upite;
 Register globals omogućava automatsko kreiranje
promenljivih po nazivu parametra;
 Da bi aplikacija bila bezbednija, register globals treba da
bude isključen;
 Prilikom uključenja postojećeg koda, treba vršiti proveru
uključenih fajlova, najbolje putem bele liste.

Validacija i validacioni filteri


 Bezbednost je na visokoj poziciji važnosti jedne web
aplikacije;
 Validacija podataka može se izvršiti na klijentskoj i serverskoj
strani aplikacije;
 Ako se nešto ne vidi na strani, ne znači da ga nema ni u
Source HTML kodu;
 Referer je lokacija sa koje je klijent upućen na stranu putem
linka;
 Za validaciju na klijentu koristi se JavaScript;
 PHP ima neke ugrađene funkcije za validaciju;
 Ugrađena PHP funkcija za validaciju naziva se filter_var i
prima promenljivu koju treba da proveri i tip validacije koju
treba da izvrši nad njom.

Rukovanje greškama
 Najčešći uzrok grešaka jeste problem u pristupu spoljnim
resursima (fajlovi, baza, korisnički ulaz, strim);
 Greške se predupređuju logikom u kodu, obradom izuzetaka,
obradom grešaka;
 Moguće je ručno aktivirati grešku;
 Moguće je napraviti sopstveni hendler za rukovanje
greškama, koji će hvatati sve greške ili one određenog tipa i
tim hendlerom prepisati ugrađeni hendler;
 Moguće je izbaciti sopstveni izuzetak tokom izvršavanja
koda;
 Moguće je napraviti sopstvenu klasu izuzetaka koja nasleđuje
klasu Exception;
 Izuzecima se rukuje tako što se glavni kod stavlja u try blok, a
alternativni kod u catch blok, pri čemu oba bloka moraju
postojati i catch blok mora prihvatiti promenljivu koja je tipa
izuzetak.

Rezime za modul
×
Rad sa podacima
Rukovanje MySQL-om
 Projekat phpMyAdmina je akcentovan tako da se bazira na
lakoj instalaciji, u okviru Wamp Servera, i jednostavnom
korisničkom interfejsu;
 Odabirom opcije Insert imate mogućnost da unosite podatke
u tabele koje ste kreirali;
 Ono što je potrebno prilikom promene passworda da uradite
jeste da podesite password za root korisničko ime i uklonite
anonimus korisnika i kreirate novog korisnika, ukoliko je
potrebno;
 Importom baze u MySQL moguće je da uvedete vašu, već
postojeću bazu;
 Preporučljivo je da ima .sql ekstenziju;
 Export baze podataka predstavlja izvoz baze iz phpMyAdmin
okvira;
 Biblioteka funkcija koju koristi PHP za uspostavljanje veze sa
MySQL-om zove se MySQLi (slovo i je dodato od engleske
reči improved, što znači poboljšan);
 MySQLi_connect_errno() vraća broj grešaka u slučaju
neuspešnog izvršavanja. U slučaju da je uspešno izvršena,
vraća nulu;
 Imena funkcija sa proceduralnim verzijama počinju sa
’mysqli_’; tim funkcijama se mora proslediti resurs koji ste
prethodno dobili od funkcije mysqli_connect();
 Potrebno je da bazu podataka sa kojom želite da se povežete
navedete kao parametar funkcije mysqli_connect();
 Izvršavanje upita ka bazi podataka obavlja se preko
mysqli_query() funkcije;
 Skup rezultata možete osloboditi pozivom metode:
mysqli_free_result( $rezultati );
 Funkcija mysqli_close (veza sa bazom) koristi se za raskidanje
veza sa bazom.

PHP i baze podataka


 PHP obezbeđuje podršku za Open Database Connectivity
(ODBC) i na taj način je moguće da PHP program pristupi
bilo kojoj bazi podataka koja podržava ODBC;
 odbc_connect(dsn/dsn-less connection string, username,
password) – funkcija koja se koristi za uspostavljanje
konekcije sa bazom;
 odbc_exec(connection_id, SQL query_string) – ova funkcija se
koristi za izvršavanje SQL naredbi;
 Ekstenzija mysql se od verzije PHP 5.5.0 smatra
prevaziđenom i njena upotreba nije preporučljiva;
 Prikaz podataka iz baze se vrši uz pomoć SELECT upita.

Preporučena literatura
Preporučena literatura:
Literatura na engleskom:

1. Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5 (Learning Php,
Mysql, Javascript, Css & Html5)
Autor: Robin Nixon
Godina: 2015.

2. Modern PHP: New Features and Good Practices


Autor: Josh Lockhart
Godina: 2015.

3. Learning PHP 5
Autori: Learning PHP 5
Godina: 2014.

4. Learning PHP, MySQL, JavaScript, and CSS: A Step-by-Step Guide to Creating


Dynamic
Websites, O'Reilly
Autor: Robin Nixon
Godina: 2012.

5. Programming PHP O'Reilly


Autor: Kevin Tatroe, Peter MacIntyre I Rasmus Lerdorf
Godina: 2013.
Literatura na srpskom:

1. PHP kuvar
Autori: Adam Trachtenberg, David Sklar
Izdavač: Mikro knjiga

2. PHP i MySQL – razvoj aplikacija za Web


Autor: Welling Luke; Thomson Laura; Mikro knjiga

3. SKOK U PHP 5 
Holcner Stiven; Kompjuter biblioteka
.

Korisni linkovi:

1. http://www.php.net/
2. http://www.w3schools.com/PHP/
3. http://www.tizag.com/phpT/
4. http://www.tutorialized.com/tutorials/PHP/1

You might also like