osnove php-a - webdizajn.ict.edu.rs · vi soka ãnrod strukovnih studija za informacione i...

Post on 14-Oct-2019

14 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Visoka škola 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

Sintaksa php koda

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

2. <?php ?>

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

Provera rada

<?php

phpinfo();

?>

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.

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

<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

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>

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

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”);

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.

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"; ?> ....

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";

?>

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

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.

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>

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

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

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

• 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

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>

Ispis grupe tagova pomoću echo()

Ispis Java script koda pomoću echo()

Ispis Java script koda pomoću echo()

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)

Primer

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;

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

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

?>

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

?>

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”);

Primer

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

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

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”

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

Funkcije za string-ove

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

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!

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!?"; } ?>

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

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

Primer

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

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

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

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

Logički operatori

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

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

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;

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

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

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/>');} ?>

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/>');} ?>

Funkcije promenljivih

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

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);

?>

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

• 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");

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);

?>

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“) );

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/>"; } ?>

<?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

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";

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);

?>

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";

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);

?>

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"));

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];

?>

Funkcije za rad sa nizovima

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

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

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“;

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 !");

Toliko za sada

top related