Php specijalisticki, Završni rad' predlog Osnovi programiranja. Megatrend University of Applied Sciences
deks898
deks898

Php specijalisticki, Završni rad' predlog Osnovi programiranja. Megatrend University of Applied Sciences

DOC (879 KB)
46 str.
3broj preuzimanja
1000+broj poseta
Opis
php jezik specijalisticki
20 poeni
poeni preuzimanja potrebni da se preuzme
ovaj dokument
preuzmi dokument
pregled3 str. / 46
ovo je samo pregled
3 prikazano na 46 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 46 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 46 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 46 str.
preuzmi dokument

VISOKA POSLOVNO-TEHNIČKA ŠKOLA STRUKOVNIH STUDIJA

STUDIJSKI PROGRAM INFORMACIONE TEHNOLOGIJE

OSNOVEPROGRAMSKOG JEZIKA PHP SPECIJALISTIČKI RAD

Kandidat:

Mentor:

Užice,

VISOKA POSLOVNO-TEHNIČKA ŠKOLA STRUKOVNIH STUDIJA

STUDIJSKI PROGRAM INFORMACIONE TEHNOLOGIJE

OSNOVEPROGRAMSKOG JEZIKA PHP

SPECIJALISTIČKI RAD

Kandidat:

Mentor:

Užice, 2013.

VISOKA POSLOVNO-TEHNIČKA ŠKOLA STRUKOVNIH STUDIJA

STUDIJSKI PROGRAM INFORMACIONE TEHNOLOGIJE

NAZIV RADA

OSNOVEPROGRAMSKOG JEZIKA PHP

Izveštaj komisije

Ocena pisanog / praktičnog dela Specijalističkog rada Ocena usmene odbrane Specijalističkog rada Ukupna ocena

PAGE 7

Specijalističkog rada

Komisija: Predsednik:

Član:

Mentor:

Datum: Mesto: Užice

TEKST ZADATKA ZA SPECIJALISTIČKI RAD

Kandidat:

Studijski program: Informacione tehnologije

Predmet: Web programiranje

Tema: OSNOVE PROGRAMSKOG JEZIKA PHP

Sadržaj rada:

1. Upoznavanje sa PHP-om 2. Podešavanje razvojnog okruženja 3. Osnove sintakse i semantike PHP-a

PAGE 7

Rezime:

U Specijalistickom radu kroz konkretne primere unosa kod-a opisane su osnove programskog jezika PHP (PHP: Hypertext Preprocessor) koji je objektno- orijentisan programski jezik namjenjen prvenstveno programiranju dinamičkih web stranica i aplikacija.

PHP je alat koji omogućava da web strane "ožive" na način na koji to nije moguće sa statičkim stranama. Sumary:

In this graduate work through specific examples of code input and described the basic of programming language PHP ( PHP: Hypertext Preprocesor ) which is object oriented programming language intended primarily for programming dynamic web pages and aplications.

PHP is a tool that enables web site "live" on the way in which it is not possible with static pages.

Sadržaj

1. UVOD U PHP 8 2. ŠTA JE PHP? 9

2.1 PHP u poređenju sa drugim server side skriptnim jezicima 10 2.2 Razlika između server-side i client-side skriptnih jezika {Errore nel calcolare il valore!: Non ho trovato il segnalibro "_Toc217884308" in questo documento.}

3. LOKALNA INSTALACIJA APACHE+SSL, MySQL i PHP {Errore nel calcolare il valore!: Non ho trovato il segnalibro "_Toc217884317" in questo documento.}

3.1 Konfiguracija 13 4. KREIRANJE PRVE SCRIPTE 16

0 0 0 14.1 Izvr enje prve skripte 18 0 0 0 14.2 Ubacivanje i mje anje sa HTML kodom 19

5. SINTAKSA PHP-A 21 5.1 Varijable 21

5.1.1 Prebacivanje tipova varijabli 22 5.2 Komentari 22 5.3 Tipovi podataka 23

5.3.1 Cijeli brojevi 23 5.3.2 Realni brojevi 23 5.3.3 Tekstualni podaci 24 5.3.4 Nizovi 25 5.3.5 Objekti 26

5.4 Operatori 26

PAGE 7

5.4.1 Aritmetički operatori 26 5.4.2 Operatori pridruživanja 26 5.4.3 Logički operatori 27 5.4.4 Operatori poređenja 27 5.4.5 Operatori uvećavanja i smanjivanja 28

5.5 Kontrolne strukture 28 5.5.1 If.. else 28 5.5.2 Elseif 28 5.5.3 Switch 29 5.5.4 While petlja 29 5.5.5 Do while 30 5.5.6 For petlja 30 5.5.7 Foreach petlja 31

5.6 Forme i prihvat informacija iz forme 31 6. RAD S BAZAMA PODATAKA 33

6.1 MySQL 33 7. PHP FUNKCIJE 34

7.1 Array Funkcije 34 7.2 Datum i Vrijeme 35 7.3 Direktorijske Funkcije 37 7.4 File Funkcije 38 7.5 FTP Funkcije 40 7.6 MySQL Funkcije 41 7.7 Regularni Izrazi 43 7.8 String Funkcije 44 7.9 Varijable 45

8. PRILOG 46 8.1 Način korištenja 46 8.2 Način rada 47

ZAKLJUČAK 48 INDEX POJMOVA 49 LITARATURA 50

PAGE 7

1. UVOD U PHP

PHP je široko rasprostranjen Open Source skript jezik koji se izvršava na strani Web servera, a namijenjen je za kreiranje dinamičkih web stranica, i uopšte različitih Internet aplikacija.

PHP je nastao 1994. godine od strane Pasmus Ledorfa, a inače je skraćenica od "Personal Home Page Tools". Autor je jezik kreirao radi održavanja vlastitih web stranica, a na bazi tada jako zastupljenog Perl jezika. Inače, sintaksa samog jezika je vrlo slična sintaksama jezika C i Perl. Nakon njegovog pojavljivanja, veliki broj programera i dizajnera je uzeo učešća u njegovom daljem razvoju (pošto se radi o Open Source projektu), tako da je jezik sada "dogurao" do verzije 5.

PHP je podržan od strane velikog broja platformi (gotovo svih), ali se posebno odomaćio na Unix/Linux platformi. Direktan konkurent PHP-Linux-Apache platformi je ASP-Windows NT-IIS platforma, ali po većini Internet marketing agencija ubjedljivo vodi PHP platforma, uglavnom zato što je besplatna i što je otvorenog koda.

Pored svega navedenog, svoju popularnost duguje svojoj sposobnosti da podržava veliki broj sistema za upravljanje bazama podataka (RDBMS), kao što su: na prvom mestu MySQL; pa zatim i ostali: MS SQL server, Oracle, Postgre SQL, MS Access i još mnogi drugi.

PHP na strani web servera predstavlja pretprocesor kome se prosljeđuju PHP skripte. Ovo u praksi radi na slijedeći način, kreirate HTML stranice i u njih dodate i svoje PHP skripte, date stranice obavezno imaju ekstenziju "*.php". Kada ih postavite na web server i korisnik ih zatraži putem svog browser-a, web server će na osnovu ekstenzije prepoznati da se radi o PHP stranicama i proslijedit će ih instaliranom PHP pretprocesoru. Potom će pretprocesor izvršiti programski kod i rezultat vratiti web serveru, koji nakon toga sve šalje browser-u. Rezultat procesiranja su najčešće dinamički kreirane HTML stranice, koje se zasnivaju na podacima iz neke od baza podataka, najčešće MySQL.

U slučaju da i sami održavate neki web site, sigurno ste se susreli sa problemom održavanja sajta i to kada broj stranica prijeđe kritičan broj. U tom slučaju, kada imamo veliki broj stranica, svaki update je vrlo mukotrpan. U tom momentu bi trebalo da se okrenete PHP- u ili ASP-u, a sve u zavisnosti od toga na kojoj platformi radi vaš host provajder.

PAGE 7

2. ŠTA JE PHP?

PHP je open-source server-side skriptni jezik za dinamičko generisanje HTML koda, zapravo to je skraćenica od “Hypertext Preprocesor“. Drugim riječima, PHP je skriptni jezik pomoću kojeg možete kreirati HTML stranicu na serveru pre nego što se ona, popunjena dinamičkim sadržajem, pošalje klijentu. Ovim načinom generisanja sadržaja klijent ne može vidjeti kod (skriptu) koji je generisao sadržaj koji gleda, već ima pristup čistom HTML kodu.

Vrlo jednostavno, PHP je jedan od najpopularnijih i najmoćnijih skriptnih jezika trenutno na tržištu. Broj sajtova koji koriste PHP raste iz dana u dan, a broj preduze ća koje žele primeniti PHP na svojim sajtovima je još veći. PHP je odličan jer pomoću njega sa neverovatnom lakoćom možete stvoriti opširnu web aplikaciju s velikim količinama podataka.

Zamislite samo koliko biste se namučili u HTML-u kada biste na web-u trebali prezentovati paletu proizvoda neke firme. Uzmimo da dotična firma ima u svom asortimanu oko 1000 proizvoda. To znači da biste morali napraviti 1000 stranica (za svaki proizvod posebnu) i paziti da svaka stranica izgleda isto (da su tablice poravnate, da su naslovi iste veličine i boje…). Ovo bi bio vrlo mukotrpan i stresan posao. Ako biste želeli omogućiti svojim posetiocima vrlo jednostavno pretraživanje asortimana proizvoda, ovaj zadatak bi postao praktički neizvodljiv! Isti ovakav sajt možete napraviti u duplo kraćem roku sa trostruko većom funkcionalnošću, sa potpuno besplatnim alatom u vašem omiljenom tekstualnom editoru.

Open-source u gornjoj definiciji znači da svako ko želi može skinuti izvorne PHP kodove pisane u C-u i, ukoliko ih razume, može ih menjati po svojoj volji te dodavati nove funkcije PHP-u. Štaviše, svi su pozvani da učestvuju u razvoju novih verzija PHP-a. Izvorne kodove i instalacijske datoteke možete skinuti sa službenog PHP sajta.

Ono što PHP stavlja još više ispred ostalih web skriptnih tehnologija je njegova podrška za baratanje širokom paletom baza podataka. Podržava sve popularnije baze podataka kao što su MySQL, PostgreSQL, dBase, Oracle, ODBC…

Isto tako njegova nezavisnost o operacijskom sistemu i pristupačne cene (besplatan je) pa ga čini među prvim izborom velikih i malih kompanija za izradu vlastitih mrežnih sistema.

PAGE 7

2.1. PHP u poređenju sa drugim server side skriptnim jezicima

PHP vs ASP

Prva razlika je ta što ASP sam po sebi nije jezik već grupa povezanih objekata kojima možemo pristupiti pomoću VB ili Java Scripta. Druga stvar koja stavlja ASP u drugi plan je ta što je ASP podržan na Win32 sistemima sa IIS-om, a morali bi izdvojiti veliku sumu da bi ga pokrenuli na drugim platformama ili serverima. Veliki problem kod ASP-a je to što je programer ograničen samim jezikom koji je podeljen na 'komponente' i ukoliko želimo šire mogućnosti morali bismo nadograđivati ASP dodatnim komponentama, što u Microsoft žargonu znači dodatni troškovi!

PHP vs Perl

Ova dva jezika imaju dosta sličnosti, ali više razlika. Glavna razlika je ta što je PHP namenjen prvenstveno za web skriptanje a Perl ima mnogo širu upotrebu. Samim tim ima i složeniju sintaksu od PHP-a što ga čini teže za naučiti i manje 'shvatljivim' od PHP-a. Uprkos široj upotrebi Perla PHP koristi mnoge 'dobre' specifičnosti Perla poput konstruktora (više o njima posle) i nekih sintaktičkih osobina .

PHP vs Cold Fusion

Osnovna razlika između ova dva jezika je ta što je PHP stvoren sa mišlju na pravog programera sa iskustvom u nekom C stil jeziku, dok su stvaraoci Cold Fusiona imali u prvom planu neprogramere i njima su prilagodili sintaksu. Isto tako, PHP je pouzdaniji i otvoreniji inovacijama i programerskim trikovima od CF-a.

2.2. Razlika između server-side i client-side skriptnih jezika!

Sever - side

Server side skripte se izvršavaju na serveru (poslužitelju) kada poslužitelj primi zahtev za PHP dokumentom. Nakon primanja zahteva sa PHP dokumentom poslužitelj izvršava PHP kod i na osnovu njega generiše HTML kod i šalje ga klijentu. To znači da stranica koja se prikazuje u pretraživaču klijenta ne postoji u tom obliku nigde na serveru odakle ju je klijent primio. Ovo može stvoriti male poteškoće pri pozicioniranju vaših stranica na nekim tražilicama, ali postoje članci na netu koji objašnjavaju i ovu problematiku.

Client – side

Glavni i najpoznatiji predstavnik ove grupe jezika je JavaScript. Kod pisan u JavaScriptu je obično umetnut u HTML stranicu i izvršava se tek u klijentovom pretraživaču. Ovakav kod vidljiv je svima, osim ako nemate malo iskustva i spremite svoje kodove u nekakav include file te time sakrijete svoje kodove koje ste razvijali u sitne noćne sate.

PAGE 7

Detaljnije ćemo razmotriti razlike između njih na jednom banalnom primeru. Recimo da

PAGE 7

želimo napisati skriptu koja prikazuje tačno vreme negde na stranici. Iako ovo zvuči kao vrlo banalan i lagan primer, ako se malo bolje razmotri vidi se da je ovo gotovo nemoguće izvesti. Zašto? Prvo pitanje koje trebamo postaviti je 'Koje je vreme tačno vreme?'. Ono na vašem serveru ili ono na klijentovom računaru? Šta god odlučili, ove dvije skripte će retko kada prikazati isti rezultat.

Primer 1

<script language="JavaScript">

var v = new Date()

document.write(v.getHours())

document.write(":")

document.write(v.getMinutes())

document.write(":")

document.write(v.getSeconds())

</script>

i

Primer 2

<?

$str_vrijeme= date("H:i:s");

echo $vrijeme; <?

PAGE 7

3. LOKALNA INSTALACIJA APACHE+SSL, MySQL i PHP

Sekcija A -- Apache+mod_ssl Prva stvar koja treba da se uradi je da se instalira Apache web server. Trenutno postoje

dve glavne dostupne verzije: 1.3.x and 2.x. Ovdje ce biti prikazana instalacija za 1.3x granu, ali je većina koraka ista i za 2.x.

# cd /usr/ports/www/apache13-modssl # make install distclean

Apache se sada startuje pri podizanju sistema iz rc.conf tako da cemo dodati određeni unos:

_flags="-DSSL"' >> /etc/rc.conf

Za Apache2 korisnike: Potrebno je instalirati samo apache2 port, ali onda se mora ručno kreirati direktorijumi za SSL Certificate i Key.

# cd /usr/ports/www/apache2 # make install distclean # echo 'apache2_enable="YES"' >> /etc/rc.conf # echo 'apache2_flags="-DSSL"' >> /etc/rc.conf # mkdir /usr/local/etc/apache2/ssl.key # mkdir /usr/local/etc/apache2/ssl.crt # chmod 0700 /usr/local/etc/apache2/ssl.key # chmod 0700 /usr/local/etc/apache2/ssl.crt

Sekcija B -- MySQL

# cd /usr/ports/databases/mysql41-server # make install WITH_OPENSSL=yes distclean # echo 'mysql_enable="YES"' >> /etc/rc.conf

Za kompajliranje i instalaciju je potrebno oko 45 minuta na K6-2 350MHz.

Sekcija C -- PHP

# cd /usr/ports/lang/php4 # make config

Biće upita da se doda podrška za modul. Za sada treba odabrati podršku za Apache.

# make install distclean # cd /usr/ports/lang/php4-extensions # install distclean

Kada se dođe do PHP konfiguracionog ekrana, čekira se OpenSSL box, a ostale vrednosti se postave na podrazujevano.

Trebalo bi da je PHP sada instaliran. Na kraju instalacije edituje se Apache konfiguracioni fajl tako da se dodaju dve linije posle svih "LoadModule" linija za PHP podršku. # nano -w /usr/local/etc/apache/httpd.conf

AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

PAGE 7

3.1. Konfiguracija Sekcija A – Kreiranje Sertifikata koristeći openssl

Jedan server može da podrzi višestruke sertifikate, ali samo jedan za slušajuću IP adresu. Dakle, ako server sluša na jednoj IP adresi, može se imati samo jedan sertifikat za server. Svi virtualni domeni mogu da dele isti sertifikat, ali klijenti će dobiti upozorenja kada se konektuju na bezbedni sajt gdje se sertifikat ne poklapa sa imenom domena. Ako server sluša na više IP adresa, virtualni hostovi se moraju zasnivati na IP – ne na imenu. Ovo treba uzeti u razmatranje kada se kreira sertifikat.

Potrebno je biti u direktorijumu u kojem se želi sačuvati sertifikat. Primer je home direktorijum root korisnika.

# cd ~ # openssl genrsa -des3 -out server.key 1024

Ovdje se javlja upit da se unese lozinka za ovaj key. Sada se treba napraviti Certificate Signing Request (CSR) iz ključa koji je upravo generisan.

# openssl req -new -key server.key -out server.csr

Ukuca se lozinka koja se koristila jer je ovo mesto gde se ubacuju sve one zabavne informacije o sertifikatu, kao sto je lično ime i Fully Qualified Domain Name (FQDN). Obavezno se ubacuje FQDN za "Common Name" odjeljak. Na primer, ako je sertifikat za https://webmail.domain.tld/, onda CommonName bi trebalo da bude webmail.domain.tld.

Sertifikat je spreman za potpisivanje. Sledeći koraci su da se samo-potpiše sertifikat. # openssl x509 -req -days 365 -in /root/server.csr -signkey /root/server.key -out /root/server.crt

Sertifikat je potpisan i validan za 365 dana. Sada je potrebno kopirati fajlove u određeni direktorijum iz kojeg će ih Apache koristiti. # ~/server.crt /usr/local/etc/apache/ssl.crt/

Sekcija B – Konfigurisanje VirtualnihHostova

VirtualHosts su zgodni zbog toga sto dozvoljavaju da se hostuje mnogo domena na istom serveru i istoj IP adresi.

Za ovaj primer, napraviće se tri VirtualHost unosa – jedan za http i dva za https (SSL).

U ovoj sekciji će se menjati /usr/local/etc/apache/httpd.conf tako da se može otvoriti u editoru po izboru. Normalni VirtualHosts se mogu staviti na početak fajla zbog lakšeg pristupa i podešavaju se na ovaj način:

ServerName domain.tld

NameVirtualHost192.168.0.2:80

<VirtualHost 192.168.0.2:80> ServerName domain.tld ServerAlias www.domain.tld ServerAdmin admin@domain.tld DocumentRoot /path/to/website/files </VirtualHost>

Na kraju httpd.conf, vidi se gomila linija koje se tiču SSL. Potrebno je odbaciti sledeću liniju odmah ispred podrazumijevanog VirtualnogHosta za SSL:

PAGE 7

NameVirtualHost192.168.0.2:443

<VirtualHost _default_:443>

NameVirtualHost govori Apache-u da postoji nekoliko virtualnih hostova pod istim IP. Na kraju httpd.conf stavlja se lični VirtualHosts odmah ispred .

<VirtualHost 192.168.0.2:443> ServerName domain.tld ServerAlias www.domain.tld ServerAdmin admin@domain.tld DocumentRoot /path/to/website/files SSLEngine on SSLCertificateFile /usr/local/etc/apache/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/server.key </VirtualHost>

Kao što se i vidi, SSLCertificateFile i SSLCertificateKeyFile su samo putanje do sertifikata i ključa. VirtualHosts će se koristiti na osnovi IP, a ne na osnovu imena.

Sekcija C – Startovanje servisa

Server je sada spreman da startuje MySQL i Apache sa SSL.

# /usr/local/etc/rc.d/mysql-server.sh start # /usr/local/sbin/apachectl startssl

Kada se pokrene apache sa ssl, pojaviće se upit da se kuca lozinka. Razlog za njeno ukucavanje svaki put kada se apache startuje je zbog toga što je RSA privatni ključ sačuvan u enkriptovanom formatu. Može se izbaciti enkripcija da bi se eliminisao upit za lozinkom ali nije preporučljivo iz bezbednosnih razloga.

U slučaju da se želi ukloniti upit za lozinku:

# cd /usr/local/etc/apache/ssl.key # cp server.key server.key.orig # openssl rsa -in server.key.orig -out server.key

Potrebno je usmeriti omiljeni web čitač na https://domain.tld i trebalo bi da postoji 128-bitna bezbjedna konekcija.

PAGE 7

4. KREIRANJE PRVE SKRIPTE

Nakon što je instaliran i web server i podrška za PHP, pre samog početka potrebno je pokrenuti Apache server. Za kreiranje PHP skripti potreban je bilo kakav tekst editor. To može da bude i onaj koji dolazi uz Windows - "Notepad".

Sve počinje kreiranjem PHP skripta. Sa PHP-om koji radi na serveru može da se radi štošta što ranije nije moglo npr.: da se vade podaci iz baze podataka, da se proverava nečija lozinka, da se odštampa tekst dobrodošlice, da se koriste "kolačići"1, da se pravi knjiga posjetilaca, da se prave interaktivne strane ili čak da se prave lične aplikacije za rad sa potrošačkom korpom. Sve to može da radi nezavisno 24 časa dnevno. 2Za prvu PHP stranu koja će biti jednostavna, sa jednostavnim PHP skriptom potrebno je otvoriti neki od editora I ubaciti kod:

<?php . . Vaš PHP ide ovde... . ?>

Na istoj Web strani možete da mešate PHP i HTML, ali morate da imate na raspolaganju neki način da ih držite odvojeno. Ovo se radi tako što se PHP kod piše u okviru specijalnih tagova <?php i ?>

Unutar ovih oznaka se nalaze PHP skriptovi, koji se sastoje od PHP iskaza, koji završavaju znakom tačka - zarez. Taj znak je bitan, pošto on "saopštava" PHP-u da je tekući red završen. U radu sa JavaScript upotreba znaka tačka - zarez opciona, kod PHP-a ona je obavezna.

Ovaj primer prvog PHP skript-a je bio standardan. Korišten je samo jedan iskaz - phpinfo(). Kao što će se vidjeti, PHP iskazi mogu da rade različite stvari. Ovaj iskaz koristi funkciju phpinfo, koja prikazuje informacije o verziji PHP-a koja se koristi. Kada se takva funkcija pozove po nazivu, izvršavaju se svi iskazi koji se u njoj nalaze.

Funkcija phpinfo je jedna od mnogih funkcija koje su ugrađene u PHP i koje su spremne za upotrebu. Funkcije mogu da sadrže stotine redova koda, a sve što mi treba da uradimo je da tu funkciju pozovemo preko njenog naziva. U ovom slučaju funkcija phpinfo kreira HTML tabelu u kojoj se nalaze informacije o instalaciji PHP-a. Primjer kako se funkcija poziva preko jednog iskaza:

<?php phpinfo(); ?>

PAGE 7

1 Kolačići su kratke tekstualne datoteke 2 Ovo se još može skratiti ako u datoteci php.ini uključite opciju short tags (skraćene oznake). To je datoteka koju PHP koristi za konfiguraciju. U tom slučaju možete da koristite samo oznake <? i ?>. Nije preporučljivo, pošto će Vaši skriptovi često biti upotrebljavani i na drugim serverima, pored onog koji ste Vi podesili, tako da može doći do konflikta sa drugim skript jezicima.

Kada se ovaj skript unese u editoru teksta, kao što je pokazano za slučaj WordPada na slici 1.1, i datoteka se sačuva pod nazivom phpinfo.php.

Slika 1.1WordPad.

Treba obratiti pažnju da se datoteka sačuva kao običan tekst. Ako nije sačuvana na taj način, PHP će imati problema sa njom (jedan od načina da se to provjeri je da se pogleda kompletan naziv datoteke u DOS prozoru pod Windowsom).

Nakon što je kreirana datoteka phpinfo.php, sljedeći korak je da se sačuva na Web serveru, na mjestu odakle server može da je pročita. Ako se radi sa nekim ISP provajderom, prebacuje se datoteka phpinfo.php na mesto gde se smještaju standardne Web strane. To se radi isto kao što se prebacuju i obične HTML strane pomoću FTP programa ili Web interfejsa.

Kada se radi u lokalu i kada na računaru postoji instaliran PHP i Web server, datoteka

phpinfo.php se prebacuje na mjesto gde server može da je pronađe. Kod Apache servera to je fascikla htdocs, koja se nalazi ispod fascikle na kojoj je instaliran Apache. Kod IIS servera to je fascikla inetpub/wwwroot. Na Linuxu to može biti fascikla / var/www/html.

4.1. Izvršenje prve skripte

Da bi se izvršila datoteka phpinfo.php, treba samo da se otvori u pretraživaču, kao i bilo koja druga Web strana.

To znači da je potrebno da pretraživač usmerite na URL adresu za phpinfo.php (na primer http://www.blc.edu.ba/korisnickoime/phpin-fo.php). Ako se PHP koristi lokalno, adresa koja se kuca je: http:/localhost/phpinfo.php.3

Ako je sve u redu, trebalo bi da se prikaže tabela sa informacijama o PHP-u, slično slici 1.2.

Slika 1.2.Tabela sa Informacijama o PHP-u

PAGE 7

3 Datoteka phpinfo.php ne treba da se otvara direktno u pretraživaču preko menija File Open, jer će se u tom slučaju ona otvoriti bez prolaza preko Web severa, tako da ni PHP skript neće raditi.

4.2. Ubacivanje i mešanje sa HTML kodom

PHP datoteke najčešće predstavljaju mješavinu HTML-a i PHP skriptova. Postavljanje HTML-a i PHP skriptova u isti dokument nije problem, pošto se PHP iskazi nalaze između oznaka <?php i ?>, što znači da server može lako da ih prepozna.

Već znate kako HTML radi na Web stranama. Ako, na primer, ubacite neki HTML kod koji prikazuje tekst, tekst se prikazuje kada Web server stigne do reda na strani u kome se nalazi taj tekst. Slično tome, ako PHP skript kreira neki tekst koji treba da se ubaci na Web stranu i pošalje nazad do pretraživača, tekst se na stranu ubacuje na mjestu gde je bio skript.

Pogledajte primjer 1.1. U datoteci se nalazi mješavina HTML-a i PHP-a. Kao što vidite, HTML definiše naslov dokumenta (koji se prikazuje u zaglavlju pretraživača), pri čemu se preko oznake <H1> prikazuje tekst Mixing HTML and PHP, i to velikim masnim slovima.

<HTML> <HEAD> <TITLE> Mixing HTML and PHP! </TITLE> </HEAD>

<BODY> <H1> Mixing HTML and PHP! </H1> <?php phpinfo(); ?> </BODY> </HTML>

Primer 1.1 ješanje PHP-a i HTML-a

Nakon HTML elementa <H1> server nailazi na PHP skript, što znači da se izlaz iz funkcije phpinfo ubacuje na Web stranu, koja se šalje nazad do pretraživača. Izlaz se ubacuje baš na tom mjestu. Kao što znate, funkcija phpinfo kreira HTML tabelu sa informacijama o instalaciji PHP-a, tako da rezultat treba da izgleda kao na slici 1.3. Prvo se prikazuje HTML zaglavlje, a onda slijedi tabela sa informacijama o PHP-u.

Slika 1.3. Tabela sa Informacijama o instalaciji PHP-a

Na adresi "http://www.php.net/down-load-logos.php se nalazi više logoa tipa "Rađeno u PHP-u". Ako se želi da stranica izgleda više zvanično, potrebno ih je samo preuzeti i ubaciti na Web stranu pomoću elementa <IMG>, kao u sledećem primeru:

<HTML> <HEAD> <TITLE>

PAGE 7

Mixing HTML and PHP! </TITLE> </HEAD>

<BODY> <H1> Mixing HTML and PHP! </H1> <?php phpinfo(); ?> <IMG SRC=”php-power-white.gif”> </BODY> </HTML>

Primer 1.2 Ubacivanje PHP logo-a Na slici 1.4 može se vidjeti primer sa skinutom slikom php-power-white.gif, koja se prikazuje na Web strani.

Slika 1.4. Ubacivanje PHP logo-a

PAGE 7

5. SINTAKSA PHP-A Već u uvodu su se mogle videti neke bitne stvari, npr. da se sav PHP kod nalazi

između <? i ?> kvačica. Mali dodatak ovom pravilu bilo bi korištenje <?php … ?> kvačica radi razlikovanja između PHP i XML koda (XML koristi iste ove kvačice).

Druga stvar koja je očita iz prošlih primra je da varijable pre svog imena imaju znak $. To je ujedno i prva tema koje ćemo se dotaknuti.

5.1 Varijable

Već smo spomenuli, varijable pre svog imena obavezno moraju sadržavati znak $. Tako PHP govori prevoditelju da se radi o varijabli, a ne o tekstu. Ukoliko izostavite znak $, aplikacija će javiti grešku (u najboljem slučaju) ili će preći preko nje (u najgorem slučaju) i umesto sadržaja varijable ispisati samo njeno ime.

Još jedna vrlo bitna stvar kod varijabli u PHP-u je da su imena varijabli case-sensitive. To znači da program razlikuje velika i mala slova, evo jednog malog primera za ilustraciju:

"$mojeime" nije isto što i "$MojeIme"

Isto tako, u imenima varijabli ne smete koristiti razmake niti bilo kakve znakove osim [ i ] (koji se koriste u nizovima i kod nekih metoda rada sa stringovima) te znaka '_'. Svi ostali znakovi su zabranjeni u imenima varijabli. Isto tako, ime varijable ne sme početi s brojem, ali ga može sadržavati na bilo kojoj drugoj poziciji u imenu.

Kod imenovanje varijabli preporuka je držati se sljedećeg nepisanog pravila. Na prvom mestu imena se nalazi opis tipa varijable od tri znaka. Nakon njega odvojeno sa '_' sledi ime varijable koje bi trebalo pobliže opisati ime sadržaj same varijable. Ime se obično sastoji od jedne ili dve reči koje pobliže opisuju sadržaj varijable. Reči možete odvajati sa znakom '_' ili svako početno slovo riječi možete napisati velikim slovom.

Pridržavanjem ovih pravila činite uslugu sebi jednako koliko i ostalima koji će jednog dana pokušati pročitati i razumjeti vaše kodove. Pokušajte zamisliti ovaj primjer : Otvorite vašu aplikaciju na kojoj ste radili pre godinu dana. Pred vama se sada nalazi hrpa slova i znakova, ako niste vodili računa o označavanju i izboru imena varijabli (npr. $prva, $druga, $post, $mail, $ime) koja vam više nemaju nekakvo značenje. Sada morate celu aplikaciju ponovo proraditi da bi mogli napraviti tek malu promjenu. Vrlo jednostavnom upotrebom standarda pri imenovanju varijabli i čestim komentiranjem koda ovih problema ne bi bilo. Zamislite samo da je neko drugi otvorio takve kodove. Trebalo bi mu par dana da shvati što koji red izvršava i što se nalazi u kojoj varijabli u određenom trenutku. Stoga, pomozite sebi i drugima i pišite kodove sa komentarima i standardnim imenima varijabli. Vredno je truda.

5.1.1 Prebacivanje tipova varijabli Sadržaj bilo koje varijable podložan je izmjeni svog tipa. Znači da nekakav broj može

vrlo lako postati string i obratno. Tipove možete mijenjati implicitno i eksplicitno (u sljedećim primjerima nema pridržavanja gore navedenih pravila imenovanja varijabli).

Primer: <?

// eksplicitno $int_neki_broj=10; $str_neki_broj= (string) $int_neki_broj ; // prebacili smo broj u string (ASCII znakove) ?>

Eksplicitna izmjena tipa varijable vrši se tako da u neku novu varijablu pridružite neku već postojeću varijablu i ispred nje navedete u zagradama tip u koji želimo prebaciti varijablu koju pridružujete. Isto tako možete u varijablu pridružiti nju samu s eksplicitnom izmjenom tipa podatka.

PAGE 7

Primer:

<? $int_var=10; $int_var=(double) $int_var; echo gettype($int_var); echo "<br>"; //Prijelaz u novi red echo $int_var; // gettype($int_var) vraća tip dane varijable ?>

Moguće konverzije su: • (int), (integer) - prebaci u integer • (real), (double), (float) - prebaci u double (realni broj) • (string) - prebaci u string • (array) - prebaci u niz • (object) - prebaci u objekt

5.2 Komentari PHP podržava više tipova komentara. U dosadašnjem tekstu korišteni su inline

komentari ( // komentar ). Oni preskaču sav tekst koji se nalazi iza njih sve do početka novog reda. Komentarisati možemo kad na početak reda stavimo znak "#". Ako se zeli komentarisati više redova koriste se multiline komentari.

echo "gornji tekst se nece izvrsavati"; # ovo je isto komentar ?>

<? /* Ovo je komentar koji se proteže kroz četiri reda */

5.3 Tipovi podataka U PHP-u ne postoje fiksni tipovi podataka varijabli. Naime, ne morate definisati tip

varijable pre njenog korištenja - varijablu možete deklarisati bilo kada unutar skripte i pridruživati joj različite tipove podataka tokom izvođenja skripte. Isto tako možete menjati tip podataka neke varijable jednog te istog sadržaja, ali o tome par redaka kasnije.

Tipovi podataka koje podržava PHP su: • Cijeli brojevi (integer) • Realni brojevi (floating-point numbers) • Tekstualni podaci (String) • Nizovi • Objekti

U sljedećim primerima biće prikazane neke funkcije koje će možda biti nepoznate i neće odmah biti jasno čemu one služe. Sve funkcije će biti detaljnije objašnjene malo kasnije u poglavljima o kontrolnim strukturama i sličnim stvarima.

5.3.1 Celi brojevi

U ovaj tip varijable mogu se pohraniti pozitivne i negativne brojeve u rasponu od -2147483648 do 2147483647 tj. 32 bita podataka. Mogu se zapisati u decimalnom,

oktalnom ili heksadecimalnom zapisu. Par primera: Primer:

$int_var=123; //pozitivan decimalni broj $int_var=-123; //negativni decimalni broj $int_var=0123; //oktalni broj

PAGE 7

$int_var=0#123; //heksadecimalni broj

5.3.2 Realni brojevi Postoje dva načina spremanja realnih brojeva:

Primer:

$dbl_var=0.123; // ili $dbl_var=1.123e8;

Treba biti pažljiv kada se koriste realni brojevi. Naime, njihova tačnost nije garantovana (zbog pretvaranja ovog broja u njegov binarni ekvivalent - recimo 0.33333 nikada neće biti tačno prebačen u binarni ekvivalent). Zato, ne treba ih porediti za jednakost i verovati im do posljednje decimale.

PAGE 7

5.3.3Tekstualni podaci Sadržaj string tipa varijable nalazi se između navodnika. Mogu se koristiti dupli i

jednostruki navodnici. Postoje razlike u ispisu sadržaja zavisno o tipu navodnika koji se koristi. Korištenjem duplih navodnika mogu se koristiti 'special characters' 4. To su znakovi koji slede iza znaka backslash ( \ ). On se ujedno koristi za preskakanje određenog znaka unutar stringa.

Lista posebnih znakova

Znak Značenje \n Novi red(LF ili 0x0A u ASCIIu) \t Tab razmak (HT ili 0x09 u ASCIIu) \\ Backslash \$ Dolar znak \” Dupli navodnik Ovi znakovi neće imati uticaja na izgled same stranice u prozoru browsera, već će

njihov uticaj biti vidljiv tek pri pregledu sourcea 5 dokumenta. Ovim se može sasvim sakriti činjenica da je stranica stvorena putem PHP-a i pomoću njih je lakše pronaći grešku u generisanoj stranici. U protivnom bi se sav sadržaj ispisao u jedan red bez razmaka. Bilo bi vrlo teško u tom neredu naći bilo šta, a kamoli grešku u ispisu, ako se traži u source viewu.

Ukoliko se želi da se neki tekst prebaci u novi red, pri gledanju stranice u prozoru browsera mora se poslužiti <br> i sličnim tagovima. Znači, ako neko se želi koristiti PHP-om, mora se jako dobro znati služiti HTML-om.

Još jedan bitna razlika između duplih i jednostrukih navodnika je ta da će se pri korištenju duplih navodnika sadržaj varijable ispisati, a pri korištenju jednostrukih navodnika ispisat će se ime varijable skupa sa znakom $. Mali primjer će ovo dobro ilustovati:

Primer: <?

$str_ime="Dejan"; echo ("moje ime je $str_ime");

?> // Ispisuje: moje ime je Dejan <?

$str_ime="Dejan"; echo ('moje ime je $str_ime');

// Ispisuje: ispisati: moje ime je $ime ?>

PAGE 7

4 Posebni znakovi koji govore PHP-u da izvrši određene radnje pri ispisu sadržaja varijable. 5 Izvorni kod (en. source code) je bilo koji niz izjava napisanih u nekom programskom jeziku.

5.3.4Nizovi PHP podržava više vrsta nizova

• tekstualne (associative) • cjelobrojne (vectors /indexed).

Mogu biti jednodimenzionalni ili multidimenzionalni.

Primjer cjelobrojnog jednodimenzionalnog niza: Primer: <? $arr_boje=array('plavo','žuto','zeleno');

echo $arr_boje[0]; // ispisaće 'plavo' echo $arr_boje[2]; // ispisaće 'zeleno'

$arr_boje[3]='crveno'; // dodaje novi element u niz

$arr_boje[2]='ljubičasto'; // mijenja staru vrijednost na indexu 2 // - zeleno prelazi u ljubičasto $arr_boje[7]='roza' // indexi ne moraju slijediti hronološki redoslijed // želite li ispisati sve elemente niza možete // se služiti ovom metodom foreach ($arr_boje as $int_kljuc => $str_vrijednost){ echo $int_kljuc . " => " . $str_vrijednost . "<br>\n"; } // što će rezultirati sa // 0 => plavo // 1 => žuto

// 2 => ljubičasto // 3 => crveno // 7 => roza

?>

Primjer tekstualnog (associative) niza: Primer:

<?

// recimo da želite reproducirati sadržaj // svoje torbe u niz $arr_torba=array( "olovka"=>4, "gumica"=>1, "knjiga"=>3, "index"=>"0", "disketa"=>"5" ); echo $arr_torba["knjiga"]."<br>"; // ispisali ste koliko knjga imate u torbi // ili multidimezionalni $arr_boje=array( "tople"=>array("žuta","crvena"), "hladne"=>array("plava","zelena") ); // ako želite ispisati npr žuta echo $arr_boje["tople"][0]."<br>";

?>

PAGE 7

5.3.5Objekti Istina je - PHP podržava objektno programiranje. Doduše, ne onako kako ga podržava C++ ili slični jezici, ali svoje funkcije možete grupisati u klase te stvarati instance tog

objekta kroz celu aplikaciju. Sve u svemu, da bi se koristili objekti, prvo se mora stvoriti klasa (class) s nekim funkcijama u njoj te ju pozivati unutar koda.

Primer: <? class class_proba{ function ispis_probne_klase(){ echo "Ispisujem probnu funkciju objekta"; } } $obj_probni_objekt=new class_proba; $obj_probni_objekt->ispis_probne_klase(); // rezultira ispisom // Ispisujem probnu funkciju objekta ?>

5.4 Operatori 5.4.1 Aritmetički operatori Primjer Ime Rezultat $a + $b Sabiranje Zbir od $a i $b $a - $b Oduzima

nje Razlika od $a i $b

$a * $b Množenj e

Produkt od $a i $b

$a / $b Deljenje6 Kvocijent od $a i $b $a % $b Modul Ostatak dijeljenja od $a i $b

5.4.2 Operatori pridruživanja Primer:

<? $int_var=5; $int_var+=5; // sada je vrijednost varijable 10 ?> - isto kao da smo napisali <? $int_var=$int_var+5; // opet je vrijednost varijable 10 $int_var*=5; // vrijednost varijable je 50 $int_var/=10 // vrijednost je 5 ?> kod stringova imamo <? $str_tekst='Moje ime je '; $str_tekst.='Dejan'; // sada je sadržaj varijable Moje ime je Dejan //možete se igrati malo složenijim izrazima poput $a = ($b = 4) + 5; // rezultat je 9

PAGE 7

6 Ukoliko delite dva broja koja su oba cjelobrojna, i koeficijent će biti cjelobrojan.

Ukoliko je jedna od varijabli realnog tipa i koeficijent će biti realnog tipa.

5.4.3 Logički operatori

$a and $b I True ako su oboje $a i $b true $a + $b Ili True ako je $a true ili ako je $b true $a - $b Xor ako je $a true ili ako je $b true, ali

ne i ako su oba true

$a * $b Ne True ako je $a false i obrnuto $a / $b I True ako su oboje $a i $b true $a % $b Ili True ako je $a true ili ako je $b true

U gornjoj tablici $a ili $b mogu biti bilo koji izrazi koji vraćaju true ili false kao ishod svoje operacije. Zato će sljedeći primer biti ne samo dozvoljen, već i preko potreban.

Primer:

<? If ( ( ($int_var%2)==0) and ($int_var>10)){ // kod koji se izvršava samo ako je broj paran // i veći od 10 } else { // kod koji se izvršava ako je broj neparan ili // ako je manji ili jednak 10 ili oboje } ?>

5.4.4 Operatori poređenja

Primer Ime Rezultat $a == $b Jednako True ako je $a jednako $b $a === $b Identično True ako je $a jednako $b, i ako su istog tipa $a != $b Nije jednako True ako $a nije jednako $b

$a !== $b Nije identično

True ako $a nije jednako $b, i ako nisu istog tipa

$a < $b Manje True ako je $a izričito manje od $b $a > $b Veće True ako je $a izričito veće od $b

$a <= $b Manje jednako

True ako je $a manje ili jednako $b

$a >= $b Veće jednako True ako je $a veće ili jednako $b

Budite pažljivi pri traženju jednakosti dve varijable da ne upišete $a=$b umesto $a == $b . Naime, u prvom slučaju izraz će vratiti true ako uspješno pridruži sadržaj varijable $b varijabli $a, a u drugom slučaju vratiće true ako su jednake.

PAGE 7

5.4.5 Operatori uvećanja i smanjivanja

Primjer Ime Efekt ++$a Preduvećavanje Uveća $a za jedan, i onda vrati

$a $a++ Naknadno uvećanje Vrati $a, i onda ga uveća za jedan --$a Predsmanjenje Umanji $a za jedan, i onda vrati$a

$a-- Naknadno Predsmanjenje

Vrati $a, i onda ga umanji za jedan

5.5 Kontrolne strukture Pomoću kontrolnih struktura određujemo tok skripti, odlučujemo i računamo. One su

zadužene za logiku aplikacija. 5.5.1 If.. else If.. else je najčešće korištena kontrolna struktura. Njoj dajemo logički izraz koji se

proverava i ovisno o njegovom ishodu koji može biti true ili false izvršava se blok naredbi. Primer:

<? If (7 uslov ) {8

// naredbe koje se izvršavaju ukoliko je uslov == true } else { // naredbe koje se izvršavaju ukoliko je uslov == false } ?>

5.5.2 Elseif Umjesto else ključne riječi može se koristiti i elseif ključna riječ. Ona se izvršava ako

je uslov u if-u rezultirao false. Ona takođe ispituje logički izraz.

Primer: <? If ( uslov ) { // naredbe koje se izvršavaju ako je uslov == true } elseif ( uslov2 ) { // naredbe koje se izvršavaju ako je uslov == false // i uvjet2==true } elseif ( uslov3 ) { // naredbe koje se izvršavaju ako je uslov == false // i uslov2 == false i uslov3 == true } else { // naredbe koje se izvršavaju ako su svi uslovi == //false } ?>

PAGE 7

7 die() je funkcija koja prekida izvršavanje skripte. 8 Vitičaste zagrade ( {} ) označavaju blok naredbi. Njih možete izostaviti ukoliko grana ima samo jednu naredbu.

komentari (0)
nema postavljenih komentara
budi prvi koji ce napisati!
ovo je samo pregled
3 prikazano na 46 str.
preuzmi dokument