Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i...

76
Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Kojić

Transcript of Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i...

Page 1: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Visoka škola strukovnih studija za informacione i komunikacione tehnologije

Beograd

Osnove PHP-a

dr Nenad Kojić

Page 2: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Pre početka…

• Pre početka učenja jezika jako je bitno da se razume značaj dokumentacije jezika i upotreba iste.

• Zvaničan sajt za PHP je http://php.net/

• Na tom sajtu se nalazi dokumentacija, koja pored opšte sintakse i pravila jezika ima veliki broj primera, komentara i sugestija

• http://php.net/manual

Page 3: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Sintaksa php koda

Početna i krajnja oznaka PHP koda unutar web stranice su: 1. <? ?>

2. <?php ?>

3. <script language="php"> </script>

Page 4: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Provera rada

<?php

phpinfo();

?>

Page 5: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Gde i kao se piše PHP kod

• Kod može biti interni ili eksterni.

Za interno napisan kod:

• Stranica može da sadrži: samo php kod, php kod koji je integrisan u HTML ili HTML koji je integrisan u PHP

• U svim slučajevima stranica mora da ima ekstanziju .php

• Ako je stranica samo sa php kodom tada počinje sa <?php i završava se sa ?>

• Ako je HTML kod potrebno integrisati u PHP kod tada se on piše unutar echo().

• Ako je PHP kod potrebno integrisati u većinski HTML, tada se na tom mestu otvara php sekcija sa <?php --- ?>. Ovakvih sekcija unutar jedne HTML strane može biti neograničeno mnogo.

Page 6: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer <html>

<head>Proba</head>

<body>

<p>Prvi pasus</p>

<?php

//ovde se kreira drugi pasus

echo("<p>Drugi pasus</p>");

?>

<p>Treci pasus</p>

<?php

//ovde se kreira horizontalna linija i tag H3

echo("<hr/>");

echo("<h3>Kraj</h3>");

?>

</body>

</html>

Originalni kod php strane Kod u browser-u

Page 7: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

<body> <h2> Postavka oglasa </h2> <table cellspacing="8"> <tr><td> e-mail: </td> <td><input type="text" name="mail"> </td> </tr> <tr><td><b style="color: red">*</b> <b>Marka: </b></td> <td> <?php $dbhost = 'localhost'; $dbuser = 'root'; $konekcija = @ mysqli_connect('localhost', 'root', '') or die('Veza sa bazom ne moze biti uspostavljena. Pokusajte

kasnije.'); echo ('<select name="marka" id="marka" onChange="prikaz()";/>'); echo "<option selected>--- Izaberite ---</option>"; while($niz = mysql_fetch_array($rezultat)){ echo ("<option value='$niz[0]'> $niz[0] </option>");} echo ('</select>'); mysql_close($konekcija); ?> </td> </tr> <tr><td>Godište: </td> <td> od: <?php $i=0; echo ('<select name="god_od">'); echo ("<option value='%'>--- Izaberite ---</option>"); for ($i=2009; $i>1929; $i--){ echo ("<option value='$i'> $i </option>"); } echo ('</select>'); ?> </body>

Primer

Page 8: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Eksterni fajl

• Kao i kod drugih jezika, kod u PHP-u se može direktno pisati na tekućoj stranici ili “uvesti” kao spoljašnji fajl.

• Funkcija include(), kompletan sadržaj zadatog spoljašnjeg fajla postavlja u stranicu koja je taj kod pozvala.

• Ovaj kod se “kopira” na mesto gde je funkcija include pozvana

• Ovaj deo koda se tada ponaša kao sastavni deo početne stranice

<html> <body> <?php include("header.php");

?> <p> text</p> </body> </html>

Page 9: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Eksterni fajl – include vs require

• Postoje četiri funkcije za učitavanje spoljašnjih fajlova:

• include – učitavanje spoljašnjeg fajla

• include_onse() – učitavanje fajla samo jednom

• require() – isto kao i include() sa razlikom što kod pojave greške (nemogućnosti rada) require() zaustavlja kod, a include samo generiše upozorenje o grešci

• require_onse() – isto kao i require() samo što proverava da li je dati fajl već učitan, pa ako jeste, ne uključuje ga ponovo

Page 10: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Uključivanje datoteka

• Uključivanjem sadržaja spoljašnje datoteke može se u postojeću stranicu dodati tekst ili deo koda

• Naredba za uključivanje datoteke je include – Sintaksa include(“ime_datoteke”); – Primer include(“tekst.txt”)

• Nailaskom na ovaj red koda, ako je u tekst.txt definisan neki tekst, taj tekst bi se uključio u sadržaj stranice, kao da je kreiran u HTML-u

• Ako postoji potreba za više datoteka, onda se prave generička imena koja su slična, i koja se programski mogu pozvati – Primer : Ako postoji 10 datoteka sa imenima tekst1.txt, tekst2.txt,

..., tada se mogu kroz for petlju pozvati kao ime

$brojac=1; include (“tekst”.$brojac.”.txt”);

Page 11: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

HTML tagovi <span> i <div>

• Ova dva taga imaju vrlo veliku primenu kada se koristi PHP kod

• Razlog je što se kroz njih najlakše ispisuje sadržaj koji je dobijen od serverskog koda

• Njihovom upotrebom u inicijalnoj stranici, dok im se ne dodeli sadržaj, na mestu koje je za to predviđeno nema ništa

• Dobijanjem nekog podatka od servera, on se prikazuje na prostoru sajta gde se nalazi neki od ovih tagova

• Razlika među njima je veličina polja koja se dobija za ispis

• <span> tag se koristi kada se želi definisati deo teksta koji pripada jednoj liniji

• Ako se želi definisanje veće grupe teksta tada se koristi <div> tag.

Page 12: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Kreiranje template-a

• Kod kreiranja stranica u PHP najčešće se prvo cela struktura organizuje u blokove i regione

• Svaki od blokova/regiona se učitava ponaosob, kreirajući na taj način “podlogu” za dinamički sajt

<HTML><HEAD><TITLE>PRIMER</TITLE></HEAD> <BODY> <DIV ID=“HEADER”>

<?php require_once "/include/header.html"; ?>

</DIV> sadržaj <DIV ID=“FOOTER”>

<? require_once "/include/footer.html"; ?> ....

Page 13: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

logo <?

require_once "/include/header.html";

?>

<?

require_once

"/include

/meni.html";

?>

Sadržaj

Search

MAIL

<?

require_once

"/include

/desno.html";

?>

Slika

<?

require_once "/include /header.html";

?>

Page 14: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Upotreba PHP koda

• Za razliku od prethodnog slajda gde se templet-om učitavaju html stranice češće će se učitavati php stranice, koje imaju neku svoju dinamiku (npr. meni iz baze podataka)

• Najčešće se sajt pravi u većinskom HTML kodu, a delovi sajta (divovi), koji su namenjeni nekim sadržajima, su pojedinačni php kodovi

• Na taj način jedna strana sajta je skup više nezavisnih php kodova od kojih svaki ima svoju namenu i dešava se nezavisno od ostalih

• Inicijalna mana PHP koda je što zahteva ponovno učitavanje stranice da bi prikazao sadržaj dobijen radom nekog PHP koda

• Ovaj nedostatak sa ponovnim učitavanjem strane je rešen primenom AJAX tehnologije i sada svaki deo strane, može biti celina za sebe, što daje velike mogućnosti na web-u

Page 15: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Ispis u PHP-u naredbom echo

<html>

<head><title> Pocetak PHP-a</title></head>

<body bgcolor="#000FFF">

<?php

echo ("Tekst ispisan u PHP-u“); ?>

</body>

</html>

echo(“”); je naredba za ispis sadržaja u browser-u.

Page 16: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Ispis HTML kod-a

• Sve što se nađe unutar funkcije echo ili print se ispisuje korisniku u browser-u (tako što to server prevede u HTML kod). Mogu se koristiti sa ili bez zagrada.

• Na ovaj način se kroz PHP ispisuju i HTML tagovi, kao što se u JavaScript-u to radilo sa

document.write (“nesto”); • Primer

<body> <?php echo ("<p><hr/>"); echo ("Tekst ispisan u PHP-u </p>"); echo ("<br/> Drugi tekst ispisan kroz PHP!"); ?> </body>

Page 17: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

<html>

<head>

<title>Moj prvi PHP skript</title>

</head>

<body>

<?php

print (“Zdravo narode!”);

?>

</body>

</html>

Primer - Ispis naredbom print

print(“”); je naredba za ispis sadržaja u browser-u.

Page 18: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Ispisi u zavisnosti navoda <body>

<?php

$ime = "Nikola";

print "Zdravo $ime<br>";

// ispisuje Zdravo Nikola

print 'Zdravo $ime <br>';

echo 'Zdravo $ime <br>';

// ispisuje Zdravo $ime;

print “Zdravo \$ime <br>”; // ispisuje Zdravo $ime ******* escaped the variablename

?>

</body>

Primer

Page 19: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Sintaksa PHP jezika

• Svaki iskaz u php-u mora se završiti sa ; • Iza komande dolaze znaci navoda gde se definiše na šta

komanda deluje echo ("Tekst ispisan u PHP-u“);

• Ukoliko je potrebno prikazati znake navoda a da se ne tumače kao sastavni deo komande treba u reči pre navoda staviti \

echo"Ova kuća je \"haos\" !";

Ova kuća je "haos" !

• Komentari su odvojeni sa #, //, /* - */

• Prva dva se definišu jednoredne i stavljaju se na početak svakog pojedinačnog reda, dok su druga dva za početak i kraj višerednih komentara

Page 20: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

• Pored klasičnog ispisivanja komandom echo postoje i specijalni znaci koji ostavljaju dodatne mogućnosti

Prelazak u novi red: uticajem servera ili html-a

• echo "Hallo\n";

• echo "Hallo<br\>";

Izlazne sekvence u znakovnim nizovima pod navodnicima

Znak Značenje

\n Nov red

\r Povratak u prvu kolonu (carriage-return)

\t Horizontalni tabulator

\\ Obrnuta kosa crta

\" Znak navoda

\$ Znak za dolar

Primer

Page 21: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Komentari <?php

echo "Zdravo, svete!<br>"; // Ovo je komentar u jednom redu

// u stilu jezika C++

/* Ovo je blok komentara

u više redova. */ echo "Zdravo, još jednom.<br>";# Ovo je komentar u stilu

# komandnih okruženja Unixa

?>

<?php

/* Sledeći red će ispisati, "Ovo neće

ispisati ništa." */

?>

Ovo neće ispisati <?php # echo "nešto"; ?> ništa.<br>

Page 22: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Ispis grupe tagova pomoću echo()

Page 23: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Ispis Java script koda pomoću echo()

Page 24: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Ispis Java script koda pomoću echo()

Page 25: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Promenljive u PHP-u

• Počinju rezervisanim simbolom $, nakon čega ide ime promenljive, koja počinje slovom ili _

• Imena promenljivih su keysensitive

Primer:

$pera="Perica Peric";

$broj=15;

$niz[0]=22;

$niz1[22]="milence";

• Promenljive u svom imenu mogu da sadrže samo alpha-numeričke karaktre (a-Z, 0-9, and _ ) • Promenljive ne smeju da sadrže n space-ova •Ako promenljiva ima više reči moraju biti povezane sa _ ili međusobno spojene. ($my_string, $myString)

Page 26: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer

Page 27: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

variable variable

• U PHP-u se pored dinamičke promene sadržaja može realizovati i dinamička promena imena promenljive (identifikator)

• Ako se promenljivoj telefon dodeli vrednost 20000 imamo:

– $telefon=20000;

• ali se isto može postići i sa: – $artikal="telefon";

– $$artikal=20000;

Page 28: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

case sensitive

• Imena varijabli su case sensitive!

• Tako $broj i $Broj nije ista promenljiva

• Imena naredbi, funkcija i klasa u PHP-u nisu case insensitive!

• Tako su funkcije count() i Count() iste

Page 29: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Prenošenje po vrednosti i referenci

• Kao i u drugim jezicima i PHP podržava prenošenje parametara po vrednosti i po referenci.

• Prenošenje po vrednosti znači da se sadržaj jedne promenljive kopira u drugu i dalje svaka od njih „nastavlja da živi samostalno i nezavisno od druge“ <?php

$a=1; // promenljiva a je dobija vrednost 1

$b=$a; // promnljiva b dobija vrednost promenljive a tj. 1

$a += 2; // promenljiva a dobija vrednost 1+2=3

echo($a); //ispisuje 3

echo($b); //ispisuje 1

?>

Page 30: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Prenošenje po vrednosti i referenci

• Prenošenje po referenci znači da se lokacija u memoriji jedne promenljive dodeljuje drugog, i da obe „gledaju“ na isto mesto i vide isti sadržaj tj. vrednost. Prenošenje po referenci se realizuje operatorom & <?php

$a=1; // promenljiva a je dobija vrednost 1

$b=&$a; // promnljiva b se upućuje na lokaciju na kojoj je promeljiva a i dobija vrednost 1

$a += 2; // promenljiva a dobija vrednost 1+2=3, i to je nova vrednost na lokaciji u memoriji

echo($a); //ispisuje 3

echo($b); //ispisuje 3 jer gleda istu lokaciju koju gleda i a

?>

Page 31: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Konstante

• Promenljive su oznake kojima se neka vrednost može dodeliti i u toku koda promeniti

• Konstantama se vrednost ne može menjati

• Definišu se velikim slovima i pozivaju bez $

• Za konstante se uzimaju one veličine koji su sigurno fiksne (18% PDV, 3.14 Pi, 0 stepeni tačka leđenja...)

• Rezervisana reč za kreiranje konstante je DEFINE

• Primer

define(“BROJ-PI”, 3.14); echo (BROJ-PI);

define(“CENASVESKE”, 50);

define(“SKOLA”, “Visoka ICT”);

Page 32: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer

Page 33: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Tipovi podataka

Tip podataka Opis

Boolean Skalar, True ili False

Integer Skalar, ceo broj

Float Skalar, broj koji može imati decimale

String Skalar, grupa karaktera

Array Složen tip, sadrži imena mapirana na vrednosti

Object Složen tip, može sadržati svojstva i metode

Resource Specijalan tip, sadrži reference na spoljne resurse

NULL Specijalni tip, može sadrćati samo NULL kao vrednosti, a druge vrednosti ne

Page 34: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Funkcije za proveru tipa podatka

• Funkcija kao argument dobija promenljivu a vraća 0 ili 1 ako je tip podatka potvrđen ili ne.

• Na raspolaganju su:

• is_long(), is_int(), is_integer(), is_double(), is_float(), is_real(), is_numeric()

• is_string()

• is_array, is_object()

• is_resource()

• is_null()

• is_callable – da li je to funkcija

Page 35: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

a) String (tekst)

• Stavljanjem pod znake navoda, promenljiva je automatski postala string, bez obzira na sadržaj

• Primer

$x=“Pera” $x1=“Pera Peric” $y=“5” $y1=“5.25” $z=“Pera Peric 225/25”

Page 36: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Spajanje stringova

• Spajanje je proces dodavanja jednog stinga na neki drugi

• Spajanje se vrši sa simbolom . (U JavaScript-u je to +)

• Primer

$x=“Pera” $y=“Peric” $z=“ ” $ime= $x. $z. $y

• Spajanje je moguće i kroz komandu ispisa echo (U JavaScript-u je to document.write)

• Primer

$x=“Pera” $y=“Peric” echo “Ime studenta je: $x , a prezime: $y” • Dužina stringa određuje se funkcijom strlen

– Primer: echo strlen("Hello world!"); vraća 12

Page 37: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Funkcije za string-ove

Page 38: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer funkcija za rad sa stringovima

$string = “Pera ide u skolu!”;

$duzinaStringa = strlen($string );

$deoStringaIzaSpace = strstr($string , " ");

$pozicijaKarateraO = strpos($string , "o");

P E R A I D E U S K O L U !

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Page 39: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer funkcije substr

<?php

$string = "Pera ide u skolu!"; echo substr($string, 1);

echo substr($string, 2, 6);

echo substr($string, 0, 4);

echo substr($string, -1);

echo substr($string, -3);

echo substr($string, -5, -3);

echo substr($string, -3, 2);

?>

P E R A I D E U S K O L U !

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

-5 -4 -3 -2 -1

Funkcija substr(a,b) vraća deo stringa počev od pozicije a u dužini b Ukoliko parametar b ne postoji, uzima se ceo string do kraja!

Page 40: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Kriptovanje podataka

• Najčešće korišćene funkcije za kriptovanje podataka su md5() i sha1().

• echo md5('primer’); • 6f9bdde59212bf772c41648d1b2eb072

• <?php

$str = 'apple'; if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') { echo "Ovo je apple!"; }

if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') { echo "Ovo je apple!?"; } ?>

Page 41: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

b) Integer (Celobrojni broj)

• Svaka promenljiva čija je vrednost celobrojna veličina je automatski određena kao tip Integer

• Brojne vrednosti se pišu bez znakova navoda

• Primer $x=55

$y=-123

$z=1

Page 42: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

c) Double (Racionalni broj)

• Svaka promenljiva čija je vrednost racionalni broj je automatski određena kao tip Double

• Brojne vrednosti se pišu bez znakova navoda

• Primer $x=0.55

$y=-2.123

$z=1.0

Page 43: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer

Page 44: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Funkcije za rad sa brojevima

floor() – vraća prvi manji intiger od posmatranog broja

ceil() - vraća veći intiger od posmatranog broja

abs() – vraća apsolutnu vrednost posmatranog broja

sqrt() – računanje kvadratnog korena

max() – vraća maksimalnu vrednost od posmatranih argumenata

min() – vraća minimalnu vrednost od posmatranih argumenata

pi() – vrednost promenljive pi

rand() – generisanje slučajnog broja

rand( int $min , int $max ) - generisanje slučajnog broja iz opsega

round() – vraća zaokruženu vrednost broja u odnosu na .5

Page 45: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer rada sa brojevima

Primer

$a = 10.01;

$floor_a = floor($a);

echo $floor_a; // 10

echo abs($a); // 10.1

echo ceil ($a); // 11

$max_value = max(2,3,4); // 4

$min_value = min(2,3,4); // 2

echo pi( ); // 3.14159265359

echo rand() ; // 10260

echo sqrt(22) ; // 4.69041575982

Page 46: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Proste matematičke operacije

• Operacije koje se mogu koristiti u PHP-u su: – Sabiranje (+)

– Oduzimanje (-)

– Množenje (*) – Deljenje (/)

– Moduo (%)

• Primer

$x=55

$y=-2.123

$z=2*($x+ $y) - $y/3

Page 47: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Operatori

• Pored standardnih izdvajaju se sledeći: += $x+=5 $x= $x+5

+= $x+=$y $x= $x+$y

-= $x-=5 $x= $x-10

/= $x/=10 $x= $x/10

*= $x*=10 $x= $x*10

++ $x++ $x = $x +1

-- $x-- $x = $x -1

Page 48: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Logički operatori

Page 49: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Prioriteti redosleda operacija

• Prioriteti su definisani na nivou jezika i mogu se detaljno pročitati na stranici

• http://php.net/manual/en/language.operators.precedence.php

Page 50: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Konverzije • PHP automatski vrši konverziju podataka u procesu

izračunavanja rezultata neke operacije

• Primer: $x=5

$y=-2.5

$a=“12P”

$z=$x (5,automatski z vidi kao Integer)

$z=$x* $y (-12.5, automatski z vidi kao Double)

• $z=$x* $a (60, jer je prepoznao broj, a P ignoriše)

• U nekim drugim jezicima ovo nije moguće, nego su dozvoljene operacije među istim tipovima podataka

Page 51: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Konverzije 2

• Ukoliko se konverzija ne izvrši automatski može se izvršiti eksplicitno

• Sve konverzije (ako je to moguće) imaju isti format

• $ime_promenljive = (tip u koji se konvertuje) $promenljiva;

• Primer

$cena = (double) $cena;

$novo_ime = (string) $staro_ime;

$vrednost = (integer) $vrednost;

Page 52: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Gettype i settype

• Funkcija gettype() može da utvrdi tip promenljive

• Primer: $a=12;

echo gettype($a); // vraća rezultat Integer

• Funkcija settype() može da promeni tip promenljive

• Primer: $a=12;

settype($a, “string”); echo gettype($a); // vraća rezultat String, a bio je Integer

Page 53: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

isset(), unset() i empty() • Funkcija isset() se koristi da se proveri da li je promenljiva setovana

i nema vrednost NULL

• echo isset($a) vraća true ako promenljiva $a postoji sa nekom vrednošću različitom od NULL

• Funkcija empty() se koristi da se proveri da li je neka promenljiva “prazna”. Promenljiva je prazna ako ne postoji ili ako je njen sadržaj ekvivalentan sa false.

• ("" (an empty string), 0 (0 as an integer), 0.0 (0 as a float), "0" (0 as a string), NULL, FALSE, array() (an empty array), $var; (a variable declared, but without a value)

• echo empty($a) vraća true ako ta promenljiva ne postoji, nema setovan sadržaj ili je sadržaj “prazan”

• Funkcija unset() se koristi da bi se uništila promenljiva sa nekim imenom i oslobodio prostor u memoriji

• unset($a) briše promenljivu $a

Page 54: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer <?php $a; $b=""; $c=3; $d= NULL; if(isset($a)){ echo('Promenljiva a ima vrednost!<br/>');} else{ echo('Promenljiva a nema vrednost!<br/>');} if(isset($b)){ echo('Promenljiva b ima vrednost!<br/>');} else{ echo('Promenljiva b nema vrednost!<br/>’);} if(isset($c)){ echo('Promenljiva c ima vrednost!<br/>');} else{ echo('Promenljiva c nema vrednost!<br/>’);} unset($c); if(isset($c)){ echo('Promenljiva c ima vrednost!<br/>');} else{ echo('Promenljiva c nema vrednost!<br/>');} if(isset($d)){ echo('Promenljiva d ima vrednost!<br/>');} else{ echo('Promenljiva d nema vrednost!<br/>');} ?>

Page 55: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer <?php $a; $b=""; $c=3; $d= NULL; if(empty($a)){ echo('Promenljiva a je empty!<br/>');} else{ echo('Promenljiva a nije empty!<br/>');} if(empty($b)){ echo('Promenljiva b je empty!<br/>');} else{ echo('Promenljiva b nije empty!<br/>');} if(empty($c)){ echo('Promenljiva c je empty!<br/>');} else{ echo('Promenljiva c nije empty!<br/>');} if(empty($d)){ echo('Promenljiva d je empty!<br/>');} else{ echo('Promenljiva d nije empty!<br/>');} ?>

Page 56: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Funkcije promenljivih

Page 57: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

var_dump()

• Funkcije var_dump() je vrlo korisna i treba je što pre usvojiti u svakodnevnoj upotrebi

• Ova funkcija prikazuje struktuirane informacije u vezi sa jednom ili više promenljivih ili iskaza koji uključuju tip i vrednost

• Na ovaj način se u svakom trenutku može pratiti tip i vrednost neke promenljive u toku realizacije koda

Page 58: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

var_dump()

<?php

$a="proba";

var_dump($a);

$b=3;

var_dump($b);

var_dump($b*$b);

$c = array(5, 6, array("prvi", "drugi"));

var_dump($c);

?>

Page 59: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

d) Nizovi • Niz je složen tip podatka koji u sebi može imati više

vrednosti.

• Ove vrednosti su jednoznačno raspoređene unutar niza kao elementi niza

• U PHP-u vrednosti niza ne moraju biti istog tipa!

• Elementima niza se pristupa preko njihovih indeksa

• Indeksi niza u PHP-u mogu biti numeričke vrednosti (tj. numerički indeksirani nizovi) ali i stringovi (tj. asocijativni nizovi).

• Ne mora se inicijalno definisati promenljiva tipa niz

• Ne mora se definisati inicijalna dužina niza

• Ako se ne navede drugačije prvi element niza ima indeks 0

Page 60: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

• Kreiranje niza je moguće: a) Kreiranjem jednog po jednog njegovog člana

$ime_niza[0] = "Pera";

$ime_niza[1] = "Mika";

$ime_niza[2] = "Laza";

b) Kreiranjem celog niza sa podrazumevanim indeksima $ime_niza = array ("Pera", "Mika", "Laza"); //indeksi počinju od 0

c) Kreiranjem celog niza sa definisanim indeksima $niz1 = array(3=>"Pera",4=>"Mika",5=>"Laza");

d) Kreiranjem asocijativnog niza $ime_niza = array("22"=>"Pera","23"=>"Mika","27"=>"Laza");

$ime_niza = array("prvi"=>"Pera","drugi"=>"Mika","treci"=>"Laza");

$ime_niza = array("ime1"=>"Pera","ime2"=>"Mika","ime3"=>"Laza");

Page 61: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primeri kreiranja niza <?php

$niz1 = array ("Pera", "Mika", "Laza");

$niz2 = array(3=>"Pera",4=>"Mika",5=>"Laza");

$niz3 = array("ime1"=>"Pera","ime2"=>"Mika","ime2"=>"Laza");

var_dump($niz1); echo("<br/>");

var_dump($niz2); echo("<br/>");

var_dump($niz3);

?>

Page 62: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Tipovi nizova

• U PHP-u postoje tri vrste niza: – Numerički (indeks niza je broj) – Asocijativni (indeks niza je neki sadržaj) – Multidimenzioni (niz je sastavljen od jednog ili više nizova)

• $ime[0]="Pera";

$ime[1]="Mika";

$ime[2]="Zika";

• $grad['Pera'] = "BG";

$grad['Mika'] = "NS";

$grad['Zika'] = "NI";

$opis = array(

"Pera"=>array("22", "Ozenjen"),

"Mika"=>array("30", "Ozenjen“), "Zika"=>array("40", "Neozenjen“) );

Page 63: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primeri čitanja niza <?php

$niz1 = array ("Pera", "Mika", "Laza");

for($i = 0; $i < count($niz1); $i++){

echo $niz1[$i],"<br/>";

}

?>

<?php $niz1 = array ("Pera", "Mika", "Laza"); foreach($niz1 as $ime) { echo $ime . "<br/>"; } ?>

Page 64: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

<?php

$ime_niza = array("ime1"=>"Pera","ime2"=>"Mika","ime3"=>"Laza");

while($ime=each($ime_niza)){

echo ("Index je: " . $ime['key']);

echo (" Vrednost je: " . $ime['value']);

echo("<br/>");

}

?>

<?php $ime_niza = array("ime1"=>"Pera","ime2"=>"Mika","ime3"=>"Laza"); while(list($indeks,$vrednost)=each($ime_niza)){ echo ("Index je: " . $indeks); echo (" Vrednost je: " . $vrednost); echo("<br/>"); } ?>

Primeri čitanja niza

Page 65: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Sortiranje elemenata niza • Za niz

– $ime_niza[0]= "Pera";

– $ime_niza[2]= "Laza";

– $ime_niza[1]= "Mika";

• Funkcija sort($ime_niza) sortira po sadražaju promenljivih

– $ime_niza[0]= "Laza";

– $ime_niza[1]= "Mika";

– $ime_niza[2]= "Pera";

• Funkcija rsort($ime_niza) sortira po sadražaju promenljivih, unazad

– $ime_niza[0]= "Pera";

– $ime_niza[1]= "Mika";

– $ime_niza[2]= "Laza";

Page 66: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer sortiranja vrednosti <?php

$niz=array(1=>"Mika",3=>"Pera",2=>"Laza");

var_dump($niz);

echo("<br/>Sortitao sa sort() je: <br/>");

sort($niz);

var_dump($niz);

echo("<br/>Sortitao sa rsort() je: <br/>");

rsort($niz);

var_dump($niz);

?>

Page 67: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer • Za niz

$ime_niza= array ( "a1"=> "Mika", "c1"=> "Pera", "b1"=> "Laza");

• Funkcija asort($ime_niza) sortira po sadražaju promenljivih ali zadržava svoj indeks, (arsort obrnuto)

– $ime_niza[b1]= "Laza";

– $ime_niza[a1]= "Mika";

– $ime_niza[c1]= "Pera";

Funkcija ksort($ime_niza) sortira po indeksima

– $ime_niza[a1]= "Mika";

– $ime_niza[b1]= "Laza";

– $ime_niza[c1]= "Pera";

Page 68: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer sortiranja vrednosti <?php

$niz = array("ime1"=>"Pera","ime3"=>"Mika","ime2"=>"Laza");

var_dump($niz);

echo("<br/>Sortitao sa asort() je: <br/>");

asort($niz);

var_dump($niz);

echo("<br/>Sortitao sa ksort() je: <br/>");

ksort($niz);

var_dump($niz);

?>

Page 69: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Višedimenzioni niz

• Predstavlja niz nizova

• Koristi se kada je potrebno napraviti više zajedničkih podataka grupisanih po nekom pravilu

• Primer je dvodimenziono koordinatno označavanje i ukazuje na matricu

• Primer: – $ime_niza= array (index => array (sadrzaj));

– $imenik= array("Pera Peric" => array("111-111", "Beograd"), "Mika Mikic" => array("222-222", "Kragujevac"));

Page 70: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer <?php

$imenik= array( "Pera Peric" => array("111-111“ , "Beograd"), "Mika Mikic" => array("222-222", "Kragujevac"));

//var_dump($imenik);

echo $imenik["Pera Peric"] [0];

echo $imenik["Pera Peric"][1];

?>

Page 71: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Funkcije za rad sa nizovima

Page 72: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Funkcije spajanja i rastavljanja

• Funkcija implode("separator", $ime_niza) od datog niza kreira string tako što redom uzima jedan po jedan član niza i međusobno ih razdvaja separatorom

• Funkcija explode("separator", $ime_niza) jedinstveni string deli u odnosu na separator i vraća niz

Page 73: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Primer • Za niz

– $ime_niza[0]= "Pera";

– $ime_niza[2]= "Laza";

– $ime_niza[1]= "Mika";

• Funkcija implode()

$proba1= implode("," , $ime_niza);

echo $proba1; // Pera,Mika,Laza

• Funkcija explode()

$proba2= explode("," , $proba1) daje

echo $proba2[0]; // Pera

echo $proba2[2]; // Laza

echo $proba2[1] // Mika

Page 74: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Funkcija extract() • Za dati asocijativni niz, pristup elementima niza je:

<?php

$student = [

"ime" => "Danijela",

"prezime" => "Nikitin",

"brojInd" => 25 ];

echo "Student: " . $student["ime"] . " " . $student["prezime"];

• Pomoću funkcije extract() asocijativni niz se lako „deli“ u promenljive koje se automatski nazivaju indeksima niza <?php

$student = [

"ime" => "Danijela",

"prezime" => "Nikitin",

"brojInd" => 25 ];

extract($student);

echo "Ime studenta: $ime a prezime je: $prezime a broj indeksa $brojInd“;

Page 75: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Prekid rada koda • Prekid rada tekućeg skripta tj. PHP koda se realizuje pomoću exit() ili die()

• Funkcija exit() se može koristiti bez argumenata pa čak i bez zagrada

echo "unable to do!"; exit;

• Ako se koristi sa argumentom, koristi se sa ciljem da se prvo ispiše greška i nakon toga prekine dalje izvršavanje koda

$file = fopen($filename, 'r’) or exit("unable to open file ($filename)");

• Funkcija die() se koristi kao pandam funkcije exit()

die("unable to open file !");

Page 76: Osnove PHP-a - webdizajn.ict.edu.rs · Vi soka ãNROD strukovnih studija za informacione i komunikacione tehnologije Beograd Osnove PHP-a dr Nenad Koji ü

Toliko za sada