Professional Documents
Culture Documents
×
Definicija instalacija i osnove PHP-a
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.
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).
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.
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.
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.
3. Learning PHP 5
Autori: Learning PHP 5
Godina: 2014.
1. PHP kuvar
Autori: Adam Trachtenberg, David Sklar
Izdavač: 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