2.48k likes | 3.26k Views
Internet programiranje PHP. Uvod. HTML i JavaScript se izvr šavaju na klijentskoj strani, odnosno na korisničkom računaru P HP je jedan od programskih jezika za izradu dinamičkih veb strana koji se izvršava na serverskoj strani PHP može da memoriše podatke i koristi ih u kasnijem trenutku.
E N D
Uvod • HTML i JavaScript se izvršavaju na klijentskoj strani, odnosno na korisničkom računaru • PHP je jedan od programskih jezika za izradu dinamičkih veb strana koji se izvršava na serverskoj strani • PHP može da memoriše podatke i koristi ih u kasnijem trenutku
Istorija • 1995 - PHP (Personal Home Page) jezik je započeo Rasmus Lerdorf za potrebe lične veb 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. • Trenutno se radi na PHP 6
Alternative PHP-u • 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)
Popularnost • 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.
Reference • Nije standard • www.php.net • Jason Gilmore, Beginning PHP and MySQL: From Novice to Professional, Third Edition (Beginning from Novice to Professional), Apress, March 2008. • Luke Welling, and Laura Thomson PHP and MySQL Web Development (4th Edition) (Developer's Library), Addison-Wesley Professional, October 2008. • www uopšte
Instalacija WAMP servera • WAMP server se može naći na: http://www.wampserver.com/en/ • Instalacija je jednostavna. • Pre instalacije idite na skype > tools > options > advanced > connection i isključite port 80. Zatim zatvorite Skype. • Kada je WAMP instaliran, možete otvoriti Skype.
Konfiguracija servera • Konfiguracija Apache servera se obavlja u okviru fajla: wamp\bin\apache\apache2.2.22\conf\ httpd.conf • Konfiguracija PHP kompajlera se obavlja u okviru fajla wamp\bin\php\php5.4.3\php.ini • Kada se promenikonfiguracija, klikne se naWampikonicu, pa na Restart
Osobine • Platformski neutralan • Sličan C-u od koga je nastao • Integrisanost sa (X)HTML-om • Nestruktuiran i nekonzistentan
Generalije • Komande se završavaju ; • Ključne reči (komande), imena funkcija i klasa nisu osetljiva na veličinu slova (case insensitive), dok imena promenljivih jesu. Npr. promenljiva $txt se razlikuje od promenljive $TXT, dok su funkcije sort i SORT iste.
Zašta se koristi PHP? • Omogućava dinamički HTML sadržaj • Vrši obrade na serveru, npr. prikuplja statistike o posećenosti • Obrađuje podatke iz formulara • Povezuje korisnike sa bazama podataka na serveru • Implementira autentifikaciju i zaštitu komunikacije
1. Osnove PHP-a • Tag • Komentari • Prikaz • Promenljive i njihovi tipovi • Operatori • Funkcije • Objekti
Izvršavanje koda • U okviru HTML koda: <script type=“php"> ...PHP kod… </script> • Ili u eksternom fajlu: <script type=“php" src="phpkod.php"> </script> • Ali češće se koristi uprošćena sintaksa <?php...PHP kod…?> • odnosno <?phpinclude(“phpkod.php”) ?>
Direktorijum php fajlova • U konfiguracionom fajlu Apache servera, httpd.conf, se određuje glavni direktorijum u kome su php fajlovi. • Kada su Apache, php, i MySQL baza posebno konfigurisani: U fajlu httpd Apache servera je određen defolt direktorijum za dokumente sledećom naredbom: DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs“ • To znači da su fajlovi u direktorijumu: C:\Program Files\Apache Software Foundation\Apache2.2\htdocs
Direktorijum php fajlova • U konfiguracionom fajlu Apache servera, httpd.conf, se određuje glavni direktorijum u kome su php fajlovi. • Kada je instaliran WAMP, onda je defolt direktorijum sledeći DocumentRoot "C:/Program Files/wamp/www“ • To znači da su fajlovi u direktorijumu: C:\Program Files\wamp\www • Drugi direktorijumi mogu da se odrede ili relativno u odnosu na defolt direktorijum ili pomoću aliasa, npr: Alias /slike /ftp/pub/slike
XHTML fajlovi sa php kodom • Ako želimo da koristimo php kod u fajlu sa .html ekstenzijom, u httpd fajlu Apache servera treba ubaciti liniju AddType application/x-httpd-php .html
Pozivanje php ili html fajlova • Pomoću URL adrese localhost/proba/proba.php • Fajl proba.php je u direktorijumu wamp\www\proba
Komentari • 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… */
Prikaz – echo, print • Primer: <?php echo “<b>Prvi red</b><br /><i>Drugi red</i>”; ?> • Ili: <?php echo “<b>Prvi red</b><br />”,”<i>Drugi red</i>”; ?> • Rezultat oba primera: Prvi red Drugi red
Mogućnosti umetanja PHP koda • Može: <?phpif ($expression) { ?> <strong>This is true.</strong> <?php } else { ?> <strong>This is false.</strong> <?php }?> • Preporučivo: <?phpif ($expression) { echo “<strong>This is true.</strong>”;} else { echo “<strong>This is false.</strong>”; } ?>
Promenljive • 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
Imena promenljivih • Sve promenljive počinju sa $ • Drugi znak je slovo ili _
Tipovi podataka • 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
Skalarni tipovi podataka • 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;?>
Znakovni niz - string • 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=<<<EOT Text EOT; • Za duži tekst podapostrofima $s=<<<‘EOD’ Text EOD; • Primer: echo <<<EOT Primer “dužeg” znakovnog niza koji može zauzimati i “velikibroj redova” i ‘puno’ navodnika itd. EOT;
String - primeri • 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 foobar a je $a a je 2
Niz - array • Sintaksa definisanja niza ImeNiza=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: 9 9 8
Multidimenzionalni nizovi • Primer: $familije=array (“Simić”=> array(“Branka”,”Dejan”), ”Brusin”=> array(“Mića”,”Maja”,”Marija”));
Objekat - object • 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
Resurs - resource • 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
NULL vrednost • VrednostNULLje • tip podataka/vrednost koja se može dodeliti promenljivoj • Pokazuje da promenljiva ne sadrži nikakvu korisnu vrednost • Promenljiva sa vrednošću NULLima takvu dodeljenu vrednost • Vrednost “null” se dodeljuje promenljivoj kada se želi definisati da promenljiva ne sadrži nikakav podatak
Operatori • Aritmetički • Na nivou bita • Relacioni • Logički
Aritmetički operatori $a = 1 + 1; $b = $a * 3; $c = $b / 4; $d = $b – $a; $e = -$d; $f = ($g = 4) + 5; echo “a, b, c, d, e, f, g su” , “ ”,$a, “ ” ,$b, “ ”,$c, “ ”,$d, “ ”,$e, “ ”, $f, “ ”,$g; • Nakon izvršavanja prethodnog primera dobija se sledeći tekst na ekranu: a, b, c, d, e, su 2 6 1.5 4 -4 9 4
Na nivou bita • 15 & 9 rezultat 9 (1111 & 1001 = 1001) • 15 | 9 rezultat 15 (1111 | 1001 = 1111) • 15 ^ 9 rezultat 6 (1111 ^ 1001 = 0110)
Logički $a = true; $b = false; $c = $a || $b; $d = $a && $b; $f = (!$a && $b) || ($a && !$b); $g = !$a; echo " a = ",$a, " <br /> " ; echo " b = ",$b , "<br />" ; echo " c = ", $c , "<br />" ; echo " d = " , $d , "<br />" ; echo " f = " , $f , "<br />" ; echo " g = " , $g; • Rezultat izvršavanja prethodnog primera je: a = 1 b = c = 1 d = f = 1 g =
Operatori poređenja $a = 4; $b = 1; $c = $a < $b; $d = $a == $b; echo “ c = “, $c, “<br />“ ; echo “ d = “, $d ; • Rezultat izvršavanja prethodnog primera je c = d =
String operator . • Pomoću string operatora . spajaju se dva stringa • Primer $a=‘Aleksandra’; $b=‘Smiljanić’; $c=$a. ‘ ‘ . $b; $a.=‘ S’; echo $a, ‘<br />’, $c; • Rezultat Aleksandra S Aleksandra Smiljanić
Operator nizova + • Pomoću string operatora + spajaju se dva niza • Primer $a=array(0=>1,1=>2,2=>3); $b=array(3=>4,4=>5); $c=$a+$b; echo $c[0],$c[1],$c[3],$c[4]; • Rezultat 1245
Operator greške @ • Pre izraza (funkcija,promenljivih itd.) može se postaviti operator greške @ • Uloga ovog operatora je da ignoriše greške koje mogu da nastanu pri izračunavanju izraza (uključujući i izvršavanje funkcije itd.)
Operator za izvršni kod • Naredba između dva akcenta `` izvršava naredbe operativnog sistema (npr. kreiranje direktorijuma, listanje direktorijuma itd.) • Funkcioniše kada Apache nije u “Safe mode” i kada funkcija shell_exec nije isključena • “Safe mode” se uključuje a shell_exec isključuje u fajlu php.ini, zatim se Apache restartuje.
Operator za izvršni kod: primer • Primer <?php $output = `dir`; echo "<pre>$output</pre>"; ?> • Rezultat Volume in drive C has no label. Volume Serial Number is E82B-743B Directory of C:\Program Files\Apache Software Foundation\Apache2.2\htdocs 04/24/2009 00:36 . 04/24/2009 00:36 .. 11/20/2004 14:16 44 index.html 04/19/2009 22:51 21 phpinfo.php 04/24/2009 13:28 58 phpproba.php 3 File(s) 123 bytes 2 Dir(s) 78.881.165.312 bytes free
Operator za izvršni kod: primer • Primer <?php $new_dir = "Bob"; `mkdir $new_dir` ?> • Rezultat: otvoren je novi folder u okviru foldera gde je PHP fajl koji ga kreira
Funkcije • Funkcije predstavljaju grupu naredbi koja se može izvršiti kao pojedinačna jedinica • Funkcije su korisne jer čine program preglednijimi lakšim za ažuriranje • Kao i bilo koji drugi PHPkod, funkcije se moraju definisati u okviru<?php … ?> elementa • Funkcija se sastoji iz deklaracije funkcije i njenog poziva
Deklaracijafunkcija • Sintaksa za definisanje funkcije je : functionimeFunkcije(parametri) { naredbe; }
Pozivanjefunkcije • Da bi se izvršila funkcijapotrebno ju je pozvati sa određenog mesta u okviru programa • Funkcija se poziva njenim imenom i specifikacijom argumenata u okviru zagrada • Vrednosti argumenata se prosleđuju odgovarajućim parametrima funkcije u skladu sa deklaracijom funkcije