započeo rasmus - tfzr.uns.ac.rs it cas 1.pdf · 1995 - php (personal home page) jezik je započeo...

27

Upload: others

Post on 06-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans
Page 2: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

1995 - PHP

(Personal Home

Page) jezik je

započeo Rasmus

Lerdorf za

potrebe lične

web 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.

...PHP 6 ...

Page 3: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

K

Kreiranje intraktivnih, dinamičkih

WEB strana na najlakši mogući

način.

Web strane se izvršavaju na

serverskoj strani.

Sličan C-u od koga je nastao .

PHP-om poručujemo serveru šta

želimo da se desi.

HTML i JavaScript se izvršavaju na

klijentskoj strani, odnosno na

korisničkom računaru

Nestruktuiran i nekonzistentan.

Platformski neutralan.

PHP može da memoriše podatke i

koristi ih u kasnijem trenutku.

Integrisanost sa (X)HTML-om.

Procenjuje se da na svetu ima

preko 15 miliona web strana

kreiranih u PHP-u

PHP

Page 4: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

Implementira autentifikaciju i zaštitu komunikacije

Obrađuje podatke iz formulara

Povezuje korisnike sa bazama podataka na serveru

Omogućava dinamički HTML sadržaj

Vrši obrade na serveru, npr. prikuplja statistike o posećenosti

Page 5: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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)

Page 6: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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 7: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans
Page 8: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

Crossplatform

Efikasan u

rešavanJu

problema

Page 9: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

PHP datoteke

PHP datoteke su

mešavina PHP i HTML.

Ekstenzija datoteka je

.php

Za kreiranje datoteka

koriste se tekst

editori (SimpleText –

Macintosh ili Notepad

Windows).

Može se koristiti i

razvojno okruženje

za PHP (IDE) sa

prednostima kojih

nema kod tekst

editora (KOMODO,

MAGUMA, PHPedit,

Zend Studio)

Page 10: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

Program koji se napiše u PHP-u ne zahteva prevođenje (kompajliranje), nego se interpretira pri svakom izvršavanju.

Page 11: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

Uobičajen scenario po kom se izvršavaju PHP skripte je sledeći:

klijent (korisnik Interneta koji koristi neki internet pregledač) zahteva PHP stranicu sa servera

server prosleđuje zahtev servisu za veb (program veb-server na serveru)

veb-server prepoznaje da se traži PHP datoteka

ne šalje njegov sadržaj klijentu, nego ga izvršava kao program pomoću PHP modula

izlazni tekst programa (standardni izlaz) se šalje klijentu kao rezultat zahteva

klijent prepoznaje vrstu rezultata (HTML kod, slika, PDF sadržaj, arhiva itd.)

rezultat se prikazuje klijentu na odgovarajući način

Page 12: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

PHP datoteka, nalik na većinu skriptnih jezika, jednostavno sadrži skup naredbi, koje se izvršavaju jedna za drugom, od prve do poslednje, gde se poslednja ujedno smatra i krajem PHP programa.

PHP datoteke mogu da sadrže sledeće vrste elemenata

HTML oznake

Oznake za PHP

PHP naredbe

beline

komentare

Page 13: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

Komande se završavaju ;

Ključne reči (komande), imena funkcija i

klasa nisu osetljiva na veličinu slova (case

insensitive) .

PROMENLJIVA: $broj ≠$BROJ

Imena promenljivih jesu osetljiva na

veličinu slova (case sensitive).

Funkcije: sort = SORT

Page 14: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

PHP

osnovni

elementi

Komen-

tari

Prikaz

Promen-

ljive

OperatoriFunkcije

Objekti

Tag

Page 15: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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…*/

Page 16: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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

Page 17: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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 18: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

Sve promenljive počinju sa $

Drugi znak je slovo ili _

Page 19: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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 20: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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 21: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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 22: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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 foobara je $a a je 2

Page 23: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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 24: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

Primer:

$familije=array

(“Popov”=>

array(“Branka”,”Dejan”),

”Popović”=>

array(“Mira”,”Maja”,”Radivoj”));

Page 25: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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 26: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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 27: započeo Rasmus - tfzr.uns.ac.rs IT cas 1.pdf · 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične web strane 1995. 1999 - Zeev Suraski i Andi Gutmans

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