Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd
Osnove PHP-a
dr Nenad Kojić
Pre početka…
• P e početka uče ja jezika jako je it o da se azu e z ačaj doku e ta ije jezika i upot e a iste.
• Z a iča sajt za PHP je http://php.net/
• Na tom sajtu se nalazi dokumentacija, koja pored opšte si takse i p a ila jezika i a eliki oj p i e a, 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 ože iti i te i ili ekste i.
Za interno napisan kod:
• St a i a ože da sad ži: samo php kod, php kod koji je integrisan u HTML ili HTML koji je integrisan u PHP
• U s i slučaje i a st a i a o a da i a eksta ziju .php
• Ako je st a i a sa o sa php kodo tada poči je sa <?php i završa a se sa ?>
• Ako je HTML kod potrebno integrisati u PHP kod tada se on piše unutar echo().
• Ako je PHP kod pot e o i teg isati u eći ski HTML, tada se a to mestu otvara php sekcija sa <?php --- ?>. Ovakvih sekcija unutar jed e HTML st a e ože iti eogra iče o ogo.
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>
<t ><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 ože di ekt o pisati a tekućoj st a i i ili u esti kao spoljaš ji fajl.
• Funkcija include(), ko pleta sad žaj zadatog spoljaš jeg fajla postavlja u stranicu koja je taj kod pozvala.
• O aj kod se kopi a a esto gde je funkcija include pozvana
• O aj deo koda se tada po aša kao sasta i deo počet e st a i e
<html> <body> <?php include("header.php"); ?> <p> text</p> </body> </html>
Eksterni fajl – include vs require
• Postoje četi i fu k ije za učita a je spoljaš jih fajlo a:
• include – učita a je spoljaš jeg fajla
• include_onse() – učita a je fajla sa o jed o
• require() – isto kao i i lude sa azliko što kod poja e g eške e oguć osti ada e ui e zausta lja kod, a i lude sa o ge e iše upozo e je o g eš i
• require_onse() – isto kao i require() sa o što p o e a a da li je dati fajl eć učita , pa ako jeste, e uključuje ga po o o
Uključiva je datoteka
• Uključi a je sad žaja spoljaš je datoteke ože se u postojeću stranicu dodati tekst ili deo koda
• Na ed a za uključi a je datoteke je i lude • Si taksa i lude i e_datoteke ; • P i e i lude tekst.t t
• Nailaskom na ovaj red koda, ako je u tekst.txt definisan neki tekst, taj tekst i se uključio u sad žaj st a i e, kao da je k ei a u HTML-u
• Ako postoji pot e a za iše datoteka, o da se p a e ge e ička i e a koja su slič a, i koja se p og a ski ogu poz ati
• Primer : Ako postoji 10 datoteka sa imenima tekst1.txt, tekst2.txt, ..., tada se mogu kroz for petlju pozvati kao ime
$brojac=1; i lude tekst .$ oja . .t t ;
HTML tagovi <span> i <div>
• Ova dva taga imaju vrlo veliku primenu kada se koristi PHP kod
• Razlog je što se k oz jih ajlakše ispisuje sad žaj koji je do ije od serverskog koda
• Njiho o upot e o u i i ijal oj st a i i, dok i se e dodeli sad žaj, a estu koje je za to p ed iđe o e a išta
• Dobijanjem nekog podatka od servera, on se prikazuje na prostoru sajta gde se nalazi neki od ovih tagova
• Razlika eđu ji a je eliči a polja koja se do ija za ispis
• <span> tag se koristi kada se želi defi isati deo teksta koji p ipada jed oj liniji
• Ako se želi defi isa je eće g upe teksta tada se ko isti <div> tag.
Kreiranje template-a
• Kod k ei a ja st a i a u PHP ajčešće se p o ela struktura organizuje u blokove i regione
• Svaki od blokova/regiona se učita a po aoso , k ei ajući a taj ači podlogu za di a ič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
<?
require_once
"/include
/desno.html";
?>
Slika
<?
require_once "/include /header.html";
?>
Upotreba PHP koda
• Za razliku od prethodnog slajda gde se templet-o učita aju ht l st a i e češće će se učita ati php st a i e, koje i aju eku s oju di a iku p . e i iz baze podataka)
• Najčešće se sajt p a i u eći sko HTML kodu, a delo i sajta di o i , koji su a e je i eki sad žaji a, su pojedi ač i php kodo i
• Na taj ači jed a st a a sajta je skup iše eza is ih php kodo a od kojih s aki i a s oju a e u i deša a se eza is o od ostalih
• I i ijal a a a PHP koda je što zahte a po o o učita a je st a i e da i p ikazao sad žaj do ije ado ekog PHP koda
• O aj edostatak sa po o i učita a je st a e je eše p i e o AJAX teh ologije i sada s aki deo st a e, ože iti eli a za se e, što daje elike
oguć osti a e -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
• S e što se ađe u uta fu k ije echo ili print se ispisuje korisniku u browser-u tako što to se e p e ede u HTML kod . Mogu se koristiti sa ili bez zagrada.
• Na o aj ači se k oz PHP ispisuju i HTML tago i, kao što se u JavaScript-u to radilo sa
docu e t. rite esto ;
• 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 arode! );
?>
</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;
p i t Zd a o \$i e < > ; // ispisuje Zdravo $ime ******* escaped the variablename
?>
</body>
Primer
Sintaksa PHP jezika
• Svaki iskaz u php-u mora se završiti sa ; • Iza ko a de dolaze z a i a oda gde se defi iše a šta ko a da
deluje
echo ("Tekst ispisan u PHP-u );
• Ukoliko je pot e o p ikazati z ake a oda a da se e tu ač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 jed o ed e i sta ljaju se a početak s akog pojedi ač og eda, dok su d uga d a za početak i k aj iše ed ih komentara
• Po ed klasič og ispisi a ja ko a do e ho postoje i spe ijal i z a i koji osta ljaju dodat e oguć osti
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 iše edo a. */
e ho "Zd a o, još jed o .< >";# O o je ko e ta u stilu
# ko a d ih ok uže ja U i a
?>
<?php
/* Sledeći ed će ispisati, "O o eće
ispisati išta."
*/
?>
O o eće ispisati <?php # e ho " ešto"; ?> išta.< >
Ispis grupe tagova po oću echo
Ispis Java script koda po oću echo
Ispis Java script koda po oću echo
Promenljive u PHP-u
• Poči ju eze isa i si olo $, ako čega ide i e p o e lji e, koja poči je 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 di a ičke p o e e sadržaja ože ealizo ati i di a ička p o e a i e a p o e lji e
(identifikator)
• Ako se promenljivoj telefon dodeli vrednost 20000 imamo:
• $telefon=20000;
• ali se isto ož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
Pre oše je po vred osti i refere ci • Kao i u d ugi jezi i a i PHP pod ža a p e oše je pa a eta a
po vrednosti i po referenci.
• P e oše je po ed osti z ači da se sad žaj jed e p o e lji e kopi a u d ugu i dalje s aka od jih „ asta lja da ži i sa ostal o i eza is o od d uge
<?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
?>
Pre oše je po vred osti i refere ci
• P e oše je po referenci z ači da se lokacija u memoriji jedne promenljive dodeljuje drugog, i da obe „gledaju na isto mesto i vide isti sad žaj tj. ed ost. P e oše je po referenci se realizuje operatorom &
<?php
$a=1; // promenljiva a je dobija vrednost 1
$b=&$a; // promnljiva b se upućuje a loka iju a 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
• P o e lji e su oz ake koji a se eka ed ost ože dodeliti i u toku koda promeniti
• Konstantama se vrednost e ože menjati
• Defi išu se velikim slovima i pozivaju bez $
• Za ko sta te se uzi aju o e eliči e koji su sigu o fiks e 8% PDV, . Pi, stepe i tačka leđe ja...
• Reze isa a eč za k ei a je ko sta te je DEFINE
• Primer defi e BROJ-PI , . ;
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 Skala , oj koji ože i ati de i ale
String Skalar, grupa karaktera
Array Slože tip, sad ži i e a api a a a vrednosti
Object Slože tip, ože sad žati s ojst a i metode
Resource Spe ijala tip, sad ži efe e e na
spoljne resurse
NULL Spe ijal i tip, ože sad ćati sa o NULL kao vrednosti, a druge vrednosti ne
Funkcije za proveru tipa podatka
• Funkcija kao a gu e t do ija p o e lji u a aća ili ako je tip podatka pot đe ili e.
• 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 auto atski postala st i g, ez o zi a a sad žaj
• Primer
$ = Pe a
$ = Pe a Pe i
$ =
$ = .
$z= Pe a Pe i /
Spajanje stringova
• Spajanje je proces dodavanja jednog stinga na neki drugi
• Spaja je se ši sa si olo . (U JavaScript-u je to +)
• Primer
$ = Pe a
$ = Pe i
$z=
$ime= $x. $z. $y
• Spaja je je oguće i k oz ko a du ispisa e ho U Ja aS ipt-u je to document.write)
• Primer
$ = Pe a
$ = Pe i
e ho I e stude ta je: $ , a p ezi e: $
• Duži a st i ga od eđuje se fu k ijo st le
• Primer: echo strlen("Hello world!"); aća
Funkcije za string-ove Primer funkcija za rad sa stringovima
$st i g = Pe a 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 ko išće e fu k ije za k ipto a je podataka su md5() i sha1().
• echo d 'p i e ’ ; • 6f9bdde59212bf772c41648d1b2eb072
• <?php $str = 'apple'; if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') { echo "Ovo je apple!"; }
if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') { echo "Ovo je apple!?"; } ?>
b) Integer (Celobrojni broj)
• S aka p o e lji a čija je ed ost elo oj a eliči a je auto atski od eđe a kao tip Integer
• B oj e ed osti se pišu ez z ako a a oda
• Primer
$x=55
$y=-123
$z=1
c) Double (Racionalni broj)
• S aka p o e lji a čija je ed ost a io al i oj je auto atski od eđe a kao tip Double
• B oj e ed osti se pišu ez z ako a a oda
• Primer
$x=0.55
$y=-2.123
$z=1.0
Primer Funkcije za rad sa brojevima
floor() – aća p i a ji i tige od pos at a og oja
ceil() - aća eći i tige od pos at a og oja
abs() – aća apsolut u ed ost pos at a og oja
sqrt() – aču a je k ad at og ko e a
max() – aća aksi al u ed ost od pos at a ih a gu e ata
min() – aća i i al u ed ost od pos at a ih a gu e ata
pi() – vrednost promenljive pi
rand() – ge e isa je slučaj og oja
rand( int $min , int $max ) - ge e isa je slučaj og oja iz opsega
round() – aća zaok uže u ed ost oja u od osu a .
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 ate atičke operacije
• Operacije koje se mogu koristiti u PHP-u su: • Sabiranje (+)
• Oduzimanje (-)
• M ože je *
• 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 auto atski ši ko e ziju podataka u p o esu iz aču a a ja rezultata neke operacije
• Primer:
$x=5
$y=-2.5
$a= P
$z=$x (5,automatski z vidi kao Integer)
$z=$x* $y (-12.5, automatski z vidi kao Double)
• $z=$ * $a , je je p epoz ao oj, a P ig o iše
• U eki d ugi jezi i a o o ije oguće, ego su doz olje e ope a ije eđu isti tipo i a podataka
Konverzije 2
• Ukoliko se ko e zija e iz ši auto atski ože se iz šiti ekspli it o
• S e ko e zije ako je to oguće i aju isti fo at
• $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() ože da ut di tip p o e lji e
• Primer:
$a=12;
echo gettype($a); // aća ezultat Integer
• Funkcija settype() ože da p o e i tip p o e lji e
• Primer:
$a=12;
settype $a, st i g ; echo gettype($a); // aća ezultat 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) aća t ue ako p o e lji a $a postoji sa nekom vrednošću azličito od NULL
• Funkcija empty() se ko isti da se p o e i da li je eka p o e lji a p az a . P o e lji a je p az a ako e postoji ili ako je je sad ž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) aća t ue ako ta p o e lji a e postoji, e a seto a sad žaj ili je sad žaj p aza
• Funkcija unset() se ko isti da i se u ištila p o e lji a sa eki i e o i oslobodio prostor u memoriji
• unset($a) iše p o e lji u $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{ e ho 'P o e lji a e a ed ost!< />’ ;}
if(isset($c)){ echo('Promenljiva c ima vrednost!<br/>');}
else{ e ho 'P o e lji a e a ed ost!< />’ ;}
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 p e us ojiti u svakodnevnoj upotrebi
• Ova funkcija prikazuje struktuirane informacije u vezi sa jed o ili iše p o e lji ih ili iskaza koji uključuju tip i vrednost
• Na o aj ači se u s ako t e utku ože p atiti 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že tip podatka koji u sebi može i ati iše ed osti. • O e ed osti su jed oz ač o aspo eđe e u uta iza 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 ogu iti u e ičke ed osti tj. u e ički indeksirani nizovi) ali i stringovi (tj. asocijativni nizovi).
• Ne mora se inicijalno definisati promenljiva tipa niz
• Ne o a se defi isati i i ijal a duži a iza
• Ako se e a ede d ugačije p i ele e t iza i a i deks
• K ei a je iza je oguće: a) Kreiranjem jed og po jed og jego og čla a
$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či ju 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: • Nu e ički i deks iza je oj
• Aso ijati i i deks iza je eki sad žaj
• Multidi e zio i iz je sasta lje od jed og ili iše izo a
• $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 čita ja 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/>";
}
?>
Primeri čita ja niza <?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/>");
}
?>
Sortiranje elemenata niza • Za niz
• $ime_niza[0]= "Pera";
• $ime_niza[2]= "Laza";
• $ime_niza[1]= "Mika";
• Fu k ija so t $i e_ iza so ti a po sad ažaju p o e lji ih
• $ime_niza[0]= "Laza";
• $ime_niza[1]= "Mika";
• $ime_niza[2]= "Pera";
• Fu k ija so t $i e_ iza so ti a po sad ažaju p o e lji ih, u azad
• $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");
• Fu k ija aso t $i e_ iza so ti a po sad ažaju p o e lji ih ali zad ža a s oj i deks, (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šedi e zio i iz
• Predstavlja niz nizova
• Ko isti se kada je pot e o ap a iti iše zajed ičkih podataka grupisanih po nekom pravilu
• P i e je d odi e zio o koo di at o oz ača a je 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- , "Beog ad" , "Mika Miki " => 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 k ei a st i g tako što edo uzi a jeda po jeda čla
iza i eđuso o ih azd aja sepa ato o
• Funkcija explode("separator", $ime_niza) jedinstveni st i g deli u od osu a sepa ato i aća iz
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 fu k ije extract aso ijati i iz se lako „deli u p o e lji e 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
• P ekid ada tekućeg sk ipta tj. PHP koda se ealizuje po oću exit() ili die()
• Funkcija exit se ože ko istiti ez a gu e ata pa čak i ez zag ada
…
echo "unable to do!"; exit;
• Ako se ko isti sa a gu e to , ko isti se sa ilje da se p o ispiše g eška i ako toga p eki e dalje iz ša a je koda
$file = fopen $file a e, ' ’ or exit("unable to open file ($filename)");
• Funkcija die() se koristi kao pandam funkcije exit()
die("unable to open file !");
Toliko za sada