Core PHP Programming
1. Definicija instalacija i osnove PHP-a.................................................................................................... 2
1. Instalacija i priprema za rad................................................................................................................... 2
2. Tipovi podataka.................................................................................................................................... 2
3. Promenljive.......................................................................................................................................... 2
4. Operatori............................................................................................................................................. 2
2. Kontrola toka........................................................................................................................................ 4
5. if - else, ternarni operator..................................................................................................................... 4
6. switch – case struktura......................................................................................................................... 4
7. for petlja.............................................................................................................................................. 4
8. while petlja.......................................................................................................................................... 4
3. Funkcije................................................................................................................................................. 6
9. Uključenje postojećeg koda................................................................................................................... 6
10. Funkcije............................................................................................................................................. 6
4. Nizovi.................................................................................................................................................... 7
11. Rad sa nizovima.................................................................................................................................. 7
12. Višedimenzionalni nizovi i funkcionalnost nad nizovima........................................................................ 7
5. Stringovi................................................................................................................................................ 9
13. Obrada stringova................................................................................................................................ 9
14. Napredni stringovi (paterni, funkcije nad stringovima).......................................................................... 9
6. Bezbednost i debug............................................................................................................................. 10
15. Bezbednosni koncepti (uvod u bezbednost, nacini pristupa, crne i bele liste...)...................................... 10
16. Validacija, validacioni filteri................................................................................................................ 10
17. Rukovanje greškama.......................................................................................................................... 10
7. Rad sa podacima................................................................................................................................. 11
18. Rukovanje mysql-om........................................................................................................................ 11
19. PHP i MySQL.................................................................................................................................... 11
1 / 11
1. Definicija instalacija i osnove PHP-a
1. Instalacija i priprema za rad
PHP je jezik koji se interpretira, te ne može raditi bez programa za interpretaciju.
Većina sintakse PHP-a je identična sintaksi jezika C
Najčešća upotreba PHP-a je u izgradnji dinamičkih HTML strana, odnosno veb aplikacija.
PHP ne može emitovati HTML strane bez veb servera.
PHP se može izvršavati na različitim veb serverima
PHP kod može biti pisan u bilo kom alatu koji procesira tekst.
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.
2. 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 istog tipa, 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...
3. Promenljive
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 – ne valja,
$%mojaPromenljiva – ne valja).
Konstante u PHP-u ne moraju imati znak $ ispred imena. define(!n!PI!n!, 3.14);
Konstante u PHP-u mogu biti bilo kog tipa (koji je podržan od strane jezika)
4. 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
2 / 11
tipove.
3 / 11
2. Kontrola toka
5. if - else, ternarni operator
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 gnjezditi 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
6. switch – case struktura
Switch-case struktura omogućava izvršavanje jednog bloka na osnovu vrednosti promenljive
Sc struktura počinje i završava se vitičastim zagradama
Svaki slučaj SC strukture naziva se Case
Case prihvata neku vrednost i poredi je sa vrednošću ulazne promenljive
Case može prihvatiti i izraz, funkciju, pa čak i sam objekat 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
7. 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
8. 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
4 / 11
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šenjem while i do while petlje se vrši ručno, unutar petlje i zato treba paziti da se ne upadne u mrtvu petlju
5 / 11
3. Funkcije
9. Uključenje postojećeg koda
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
10. 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 parametre
Funkcije mogu imati i podrazumevane vrednosti parametara
Promenljive deklarisane u funkciji nisu dostupne van funkcije
Da bi funkcije 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
6 / 11
4. Nizovi
11. 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 se za proizvoljno raspoređivanje elemenata niza.
explode(), implode() Ove dve funkcije se koriste za konvertovanje stringa u niz i obrnuto.
array_diff( $niz1, $niz2, ... ) Ova funkcija identifikuje elemente u navedenim nizovima koji se razlikuju.
array_sum() Ova 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) Ova 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).
12. 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.
7 / 11
PHP podržava nizove parova ključeva i vrednosti.
PHP dozvoljava upis istoimenih ključeva, ali ključevi u nizu ključeva i vrednosti bi trebali da budu unikatni.
Nizovima se može rukovati preko petlji, funkcija ili putem direktnog pristupa indeksima.
8 / 11
5. Stringovi
13. Obrada stringova
print( ) i echo() su najjednostavnije funkcije za ispis teksta
printf() koja prikazuje statički tekst i dinamičke
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
dtrim( ) – uklanja prazna mesta na kraju stringa
str_word_count( ) – razbija tekst na reči i smešta ih u niz
strpbrk(string, char) – traži karakter char u tekstu string
strtoupper(string) – prebacuje sva slova u velika
strtolower(string) – prebacuje sva slova u mala
14. Napredni stringovi (paterni, funkcije nad stringovima)
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)
9 / 11
6. Bezbednost i debug
15. Bezbednosni koncepti (uvod u bezbednost, nacini pristupa, crne i bele liste...)
Bezbednost PHP veb 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
16. Validacija, validacioni filteri
Bezbednost je na visokoj poziciji važnosti jedne veb 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.
17. 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.
10 / 11
7. Rad sa podacima
18. Rukovanje mysql-om
Projekat SQL Buddyja je akcentovan tako da se bazira na lakoj instalaciji, u okviru Wamp Servera i jednostavnom
korisničkom interfejsu.
Odabirom “Insert” opcije 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.
Baza je preporučljivo da ima .sql ekstenziju.
Export baze podataka predstavlja izvoz baze iz SQL Buddy 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_’ i 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 možete osloboditi pozivom metode: mysqli_free_result( $rezultati );
Funkcija mysqli_close(veza sa bazom) se koristi za raskidanje veza sa bazom.
19. PHP i MySQL
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
odbc_fetch_array(recordset name) – korsti se za smeštanje skupa slogova u asocijativni niz.
odbc_num_rows(recordset name) – vraća broj slogova koji se nalaze u rezultujućem setu
odbc_close(connection_id) – zatvara konekciju
11 / 11
Download

Kliknite ovde za preuzimanje kataloga