You are on page 1of 37

WEB programiranje

PHP

Profesor: dr Zoran Jovanović


Student:Sava Obradović
Broj indeksa: 41/19R
Jagodina, decembar 2021.
Šta je PHP?

 PHP (Hypertext preprocessor) je programski jezik raširen i popularan pri izradi web stranica.
Izuzetno je jednostavan za učenje, a sa naučenim se postiže mnogo.

 Da biste koristili vašu PHP skriptu ili stranicu sa PHP kodom, vaš web server mora podržavati
PHP. Osim nekih besplatnih, većina komercijalnih servera podržava PHP.
Osnove PHP-a

 PHP kod mora biti unutar ključnih reči (tagova)


<?php
/*.....Ovde dolazi kod....*/
?>
ili skraćeno
<?
/*.....Ovde dolazi kod....*/
?>

 Svaka kodna naredba, definicija promenljive mora se zaključiti sa ;


Kako snimiti vaše PHP strane?

 Ako želite umetati PHP kod u vaše HTML stranice i želite da server tj. internet pretraživač
ispravno interpretira vašu stranicu, morate umesto standardne .html ekstenzije koristiti .php
ekstenziju za vaše stranice, npr. umesto index.html treba biti index.php.
Promenljive

 Promenljiva služi za privremeno pohranjivanje određene vrednosti (broja, teksta...), vrednost


pohranjena u promenljivoj se nakon toga može koristiti više puta kroz celi kod.

 Promenljiva se definišu na sledeći način:


$naziv_promenljive = vrednost;

 Znak $ ispred naziva je obavezan. osetljiva na velika i mala slova npr. $naziv i $Naziv su dve
različite promenljive.
 Pravila koja morate poštovati prilikom imenovanja promenljivih su sledeća:
PHP promenljive moraju započinjati sa slovom ili "_" znakom

U imenu mogu imati samo znakove a-z, A-Z, 0-9, ili _

promenljive sa više od jedne reči u nazivu radi preglednosti treba razdvajati sa _


Na primer:
$moja_promenljiva

Isto tako ih je u redu razdvajati koristeći velika ili mala slova


Na primer:
$mojaPromenljiva
Operatori
 U svakom programskom jeziku postoje razni operatori kojima se vrši manipulacija, matematičke
operacije ili poređenje vrednosti.

 Za dodeljivanje vrednosti koristi se "="


Primer:
<?
$moja_pro = 2;
$druga_pro = $moja_pro;
?>
 Ovim primerom promenljive moja_var smo dodelili vrednost 2, a u drugoj liniji smo promenljivoj
druga_pro dodelili vrednost moja_pro. Tj. nakon ove dve linije koda obe promenljive imati će
vrednost 2.
Matematičke operacije
 "+" sabiranje
"-" oduzimanje
"*" množenje
"/" deljenje
"%" ostatak deljenja

 Na primer:
<?
$prva_promenljiva = $druga_promenljiva +4;
?>
Upoređivanje - operacije

 Operacije upoređivanja uvek vraćaju logičku vrednost istina (true) neistina (false)
jednako $x == $y
različito (ne jednako) $x != $y
veće od $x > $y
manje od $x < $y
veće ili jednako $x >= $y
manje ili jednako $x <= $y
 Post i pre operatori omogućavaju i određivanje hoće li se operacija dogoditi pre ili posle
izvršenja cele linije koda.

 Na primer:
$x++; će se izvršiti nakon izvršenja cele linije koda, dakle ako ispišemo $x++; ispisani rezultat će i
dalje biti $x.

Dok ako ispišemo ++$x; možemo videti da je do sabiranja došlo pre nego što se izvršilo ispisivanje
te će ispisani rezultat biti jednak $x+1
String
 Za dodeljivanje vrednosti koristi se znak " ili znak '

 Primer:
<?
$moja_pro="Ovde je moj tekst";
$moja_pro='Ovde je moj tekst';
?>

 Isto tako moguće je koristiti string bez da se dodeli nekoj promenljivoj direktno u funkciji na
primer:
<?
echo "Ovde je moj tekst";
?>
 Razlika u korištenju znaka " umesto znaka ' je da ako koristite ' server neće procesuirati
promenljive unutar njega.

 Primer:
<?
$pro=4;
echo'$pro';
echo"<br/>";
echo$pro";?>

 Rezultat:
$pro
4
U PHP-u postoji način zvan heredoc koji je stvoren za kreiranje višelinijskih stringova bez upotrebe
navodnika. No sa tim načinom treba postupati oprezno jer su vrlo velike mogućnosti da se na kraju ne dobije
željeni rezultat.

 Primer:

$moj_string = <<<HPROBA
Proba višelinijskog stringa
Novi red
Još jedan red
HPROBA;

U ovom primeru identifikator heredoc-a je HPROBA vidljivo je da blok heredoc-a uvek započinje sa
<<<identifikator i završava sa identifikator; Pritom moramo voditi računa da završni identifikator nesme biti
uvućen.

 Pažnja: Ako ispišete $moj_string videti ćete da linije koje smo mu dodelili nisu odvojene već će se ispisati:
Proba višelinijskog stringa Novi red Još jedan red

 Ako smo želeli razdvajati redove mogli smo upotrebiti \n znak na kraju reda.
Stropos funkcija
 Strpos funkcija služi za određivanje pozicije prvog trazenog znaka trazenog stringa unutar
stringa.

Argumenti strpos funkcije su:


strpos($moj_string, "traženi_string");
ili
strpos($moj_string, "traženi_znak", početna_pozicija);

 Budući da strpos uvek vrati ili prvi pronađeni string ili false (ako ne pronađe traženi) treći
argument je opcija koja služi da bismo pronašli sledeći trazeni_string unutar moj_string
 Povratna pozicija je uvek za jedan manja jer strpos broji od 0.
 Primer:
<?
$moj_string = "ABCDEFGHIJKLMNOPRSTUVZXYPRGTG";
$pozicija = strpos($moj_string,"P");
echo"Pozicija znaka P u mom stringu je $pozicija";
?>

Rezultira sa:
Pozicija znaka P u mom stringu je 15
str_replace funkcija
 str_replace funkcija služi za zamenu određenog stringa unutar stringa. Najsličniji primer toj
funkciji je Replace all funkcija u Wordu na primer. Argumenti str_replace funkcije
str_replace(trazeni_string, zameni_stringom, originalni_string).

 Primer:
<?
$moj_string="Bio jednom jedan pas";
$string_rezultat=str_replace("pas","mačak",$moj_string);
echo $string_rezultat;
?>
Rezultat:
Bio jednom jedan mačak
substr_replace funkcija
 funkcija za razliku od str_replace bazira se na poziciji u stringu.

 Argumenti substr_replace funkcije substr_replace (orginalni_string, zameni_stringom, od pozicije); ili


substr_replace (orginalni_string, zameni_stringom, od pozicije, koliko_znakova_zelimo_zameniti);
 Ukoliko kao argument koliko_znakova_zelimo_zamijeniti stavimo 0 funkcija će umesto zamene
izvršiti ubacivanje stringa na danoj poziciji.
Primer:
<?
$moj_string = "Bio jednom jedan pas";
$string_rezultat = substr_replace ($moj_string,"vuk",17);
echo $string_rezultat;
?>
Rezultat:
Bio jednom jedan vuk
Print iz PHP-a

 Echo funkcija uz print funkciju u PHP-u služi kako bi se dobio print (na ekran) vrednosti.

Primer:
<?
$moj_tekst="Ovo je moj tekst";
echo $moj_tekst;
echo "Ovo je moj tekst";
?>
 Kroz php echo možemo vršiti izlaz i HTML koda, no moramo voditi računa o sledećem:
Ne smemo koristiti " unutar echo-a jer on navodnike koristi kako bi označio početak ili kraj ispisa.
Ako hoćemo ispisati " moramo ga pisati zajedno sa \ ili koristiti umesto " znak ' unutar navodnika.

 Print funkcija
Identična funkcija i upotrebljava kao i Echo funkcija

 Print_r funkcija
Upotrebljava se za print nizova (Array-a)
PHP petlje
 While uklješteni kod dok god je zadani uslov zadovoljen

Primer:
<?
$brojac = 1;
while ( $brojac <= 3 ) {
echo $brojac." ";
$brojac = $brojac+1;}
?>
 Jedina razlika između do-while petlje i while petlje je u tome da se do while uvek izvrši bar
jedanput jer proverava uslov nakon izvršenja.

Primer:
<?
do {kod koji se ponavlja - izvršava se jednom bez obzira na uslov}
while (uslov);
?>
 For petlja se razlikuje od while petlje samo po tome što dopušta definiranje i inicijalizaciju
brojača u jednoj liniji

Primer:
<?
for ($brojac = 1;$brojac<=3;$brojac++){
echo $brojac." ";}
?>
 For each petlja za svaki element niza izvršava kod.

 Primer:
<?
$dan_datum[“subota"] = "1.1.2022.";
$dan_datum[“nedelja"] = "2.1.2022.";
$dan_datum[“ponedeljak"] = "3.1.2022.";
foreach($dan_datum as $dan => $datum){
echo $datum." je ".$dan."<br />";}
?>

Ispis:
1.1.2022. je subota
2.1.2022. je nedelja
3.1.2022. je ponedeljak
PHP mogućnosti uslovnog izvršavanja koda

 If naredbu koristimo kako bismo uslovili izvršenje određenog dela koda nekim uslovom

Primer:
<?
$i=1;
if ($i==1){echo "Uslov je zadovoljen";}
if ($i==2){echo "Uslov nije zadovoljen";}
?>
 if/else samo proširava if naredbu, a koristimo je kako bismo uslovili izvršenje određenog dela
koda nekim uslovom i izvršenje drugog koda u slučaju ne zadovoljavanja uslova.

Primer:
<?
$i=2;
if ($i==1){echo "Uslov je zadovoljen";}
else {echo "Uslov nije zadovoljen";}
?>
 Switch radi na način da proverava jednu promenljivu sa više različitih slučajeva vrednosti koje definišemo.

<?
$i=2;
switch($i){
case 1:
echo "i=1";
break;
case 2:
echo "i=2";
break;
default:
echo "i nije među definisanim";
break;
}
?>
Funkcije
 Funkcija nije ništa drugo nego naziv koji dajemo određenom bloku koda, sa namerom da ga
upotrebimo više puta.
Primer funkcije sa argumentom:
<?
function moja_prva_funkcija($argument){
echo "Ja sam napisao svoju prvu funkciju sa ".$argument;
}
echo "Tu je deo koda pre upotrebe funkcije....";
moja_prva_funkcija("argumentom");
echo "..........Tu je deo koda posle upotrebe funkcije....";
moja_prva_funkcija("drugim argumentom");
echo "..........Tu je deo koda posle ponovne upotrebe funkcije....";
?>
Klase

 Klasa je kolekcija funkcija i promenljivih, odnosno klase definišu objekat kao predlog za stvarne
promenljive.

 Da bi smo koristili klase, potrebno je kreirati instancu objekta koristiteći operator new.

 Klasa se sastoji od atributa (svojstva) i metoda (radnje)


 Sintaksa klase je:
<?
class naziv_klase{
function naziv_klase() /*konstruktorska funkcija ima isto ime kao klasa*/
{
}
pro $promenljiva; /*promenljive*/
function moja_funkcija(){} /*jedna ili više funkcija*/
}
?>
PHP nizovi
 Niz (array) je struktura podataka koja omogućava pohranjivanje više vrednosti u jednu.

 Index može biti brojčani ili znakovni.

Primer:
<?
$niz_za_primjer_brojcani_index[0]=„Miloš";
$niz_za_primjer_brojcani_index[1]=„Dejan";
$niz_za_primjer_brojcani_index[2]=„Ivica";
$niz_za_primjer_znakovni_index[„Dejan"]="Prvi";
$niz_za_primjer_znakovni_index[„Ivica"]="Drugi";
?>
PHP spajanje na MySQL
 Preduslov za spajanje je naravno taj da pre toga morate imati kreiranu bazu u MySQL-u

Primer spajanja:
<?
mysql_connect("vas_server", "korisnicko_ime", "lozinka") or
die("Neuspela konekcija") ;
mysql_select_db("naziv_vase_baze") or die("Neuspelo
otvaranje baze");
/*.....ovdje dolazi upit na bazu.....*/
mysql_close();
?>
 Ukoliko je baza na vašem serveru za hostname možete koristiti localhost.

 Korisničko ime i lozinka su korisničko ime i lozinka za mysql bazu koje ste kreirali prilikom
kreiranja baze.

 Nakon što ste se spojili na bazu i izvršili sve što ste želeli (preuzeli podatke, pohranili podatke...)
potrebno je konekciju zatvoriti sa mysql_close();
Dohvat podataka iz MySQL baze

 Da bismo podatke iz baze ispisali moramo ih na neki način dohvatiti.

 Dohvat informacija kao i pohranjivanje informacija i sve ostalo vrši se upitima (query) na bazu.
Primer:
 Za ovaj primer koristiti ćemo imaginarne podatke
web server:"moj_posluzitelj",mysqlbaza="moja_baza"
korisnik="korisnik" i lozinka="lozinka„

 Pretpostavimo isto tako da imamo kreiranu tablicu na


mysqlu "moji_podaci" koja u sebi ima podatke
ime i prezime
Pohranjeni podaci u tablici su:
Prvi zapis: ime Miloš prezime Đurić
Drugi zapis: ime Sava prezime Obradović
<?
mysql_connect("moj_posluzitelj", "korisnik", "lozinka") or
die("Neuspela konekcija");
mysql_select_db("moja_baza") or die("Neuspelo otvaranje
baze");
/*Da bismo dohvatili podatke koristimo sledeći sql upit*/
$rezultat = mysql_query("SELECT * FROM `moji_podaci`") or
die("Neuspelo");
/*Da bismo rezultat upita pohranili u promenljivu koristimo sledeće*/
$podaci = mysql_fetch_array( $rezultat )) /*na ovaj način
pohranili smo iz $rezultat samo prvi zapis*/
/*Kako bismo pohranili i ispisali sve podatke iz tablice
moji_podaci upotrebi ćemo petlju*/
while($podaci = mysql_fetch_array( $rezultat )) {
echo "Ime: ".$podaci['ime'] . " Prezime:
".$podaci['prezime]. "<br /> ";
}
mysql_close();
?>
PHP pohrana podataka MySQL

Koristimo istu tablicu kao u prošlom primeru.


<?
mysql_connect("moj_posluzitelj", "korisnik", "lozinka") or
die("Neuspela konekcija");
mysql_select_db("moja_baza") or die("Neuspelo otvaranje
baze");
/*Ubaci ćemo sledeći podatak ime:Sava, prezime: Obradović
*/
$ime=„Sava";
$prezime=„Obradović";
mysql_query("INSERT INTO `moji_podaci` (`ime`, `prezime`)
VALUES ('$ime', '$prezime');");
mysql_close();
?>
KRAJ
Hvala na pažnji

You might also like