380 likes | 529 Views
PHP. Što je PHP ?. PHP (Hypertext preprocessor) je programski jezik raširen i popularan pri izradi web stranica. Izuzetno je jednostavan za učenje, a s naučenim se postiže mnogo .
E N D
Što je PHP? • PHP (Hypertext preprocessor) je programski jezik raširen i popularan pri izradi web stranica. Izuzetno je jednostavan za učenje, a s 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 riječi (tagova) <?php /*.....Ovdje dolazi kod....*/ ?> Ili skraćeno <? /*.....Ovdje dolazi kod....*/ ?> - Svaka kodna naredba, definicija varijable mora se zaključiti sa ;
Kako snimiti vaše PHP stranice • Ako želite umetati PHP kod u vaše HTML stranice i želite da server tj. internet preglednik ispravno interpretira vašu stranicu, morate umijesto standardne .html extenzije koristiti .php extenziju za vaše stranice npr. umijesto index.html treba biti index.php
Varijable • Varijabla služi za privremeno pohranjivanje određene vrijednosti (broja, teksta...), vrijednost pohranjena u varijabli se nakon toga može koristiti više puta kroz cijeli kod. • Varijable se definiraju na slijedeći način: $naziv_varijable = vrijednost; • Znak $ispred naziva je obavezan. Imena varijabli su osjetljiva na velika i mala slova npr. $naziv i $Naziv su dvije različite varijable.
Pravila koja morate poštivati prilikom imenovanja varijabli su slijedeći: • PHP varijable moraju započinjati s slovom ili "_" znakom. • U imenu mogu imati samo znakove a-z, A-Z, 0-9, ili _ • Varijable s više od jedne riječi u nazivu radi preglednosti treba razdvajati s _. Npr $moja_varijabla Isto tako ih je u redu razdvajati koristeći velika ili mala slova. Npr $mojaVarijabla
Operatori • U svakom programskom jeziku postoje razni operatori kojima se vrši manipulacija, matematičke operacije ili usporedba vrijednosti • Za dodjeljivanje vrijednosti koristi se "=" • Primjer. <? $moja_var = 2; $druga_var = $moja_var; ?> • ¸Ovim primjerom varijabli moja_var smo dodjelili vrijednost 2, a u drugoj liniji smo varijabli druga_var dodjelili vrijednost moja_var. Tj nakon ove dvije linije koda obije varijable imati će vrijednost 2
Matematičke operacije • "+" zbrajanje "-" oduzimanje "*" množenje "/" djeljenje "%" ostatak djeljenja. • Npr. <? $prva_varijable = $druga_varijabla +4; ?>
Uspoređivanje - operacije • Operacije uspoređivanja uvijek vraćaju logičku vrijednost 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 prije ili poslije izvršenja cijele linije koda • npr. $x++; će se izvršiti nakon izvršenja cijele linije koda dakle ako ispišemo $x++; ispisani rezultat će i dalje biti $x. • Dok ako ispišemo ++$x; možemo vidjeti da je do zbrajanja došlo prije nego što se izvršilo ispisivanje te će ispisani rezultat biti jednak $x+1
STRING • Za dodjeljivanje vrijednosti koristi se znak " ili znak ' • Primjer. <? $moja_var = "Ovdje je moj tekst"; $moja_var = 'Ovdje je moj tekst'; ?> • Isto tako moguće je koristiti string bez da ga se dodjeli nekoj varijabli direktno u funkciji npr. <? echo "Ovdje je moj tekst"; ?>
Razlika u korištenju znaka " umijesto znaka ' je da ako koristite ' server neće procesirati varijable unutar njega. • Primjer <? $var=4; echo '$var'; echo"<br />"; echo "$var";?> Rezultat: $var 4
U PHP-u postoji način zvan heredoc koji je stvoren za kreiranje višelinijskih stringova bez upotrebe navodnika. No s tim načinom treba postupati oprezno jer su vrlo velike mogućnosti da se u konačnici ne dobije željeni rezultatPrimjer: $moj_string = <<<HPROBA Proba višelinijskog stringaNovi red Još jedan red HPROBA; • U ovom primjeru identifikator heredoc-a je HPROBA vidljivo je da blok heredoc-a uvijek započinje s <<<identifikator i završava s identifikator;Pritom moramo voditi računa da završni identifikator nesmije biti uvućen. • Pažnja: Ako ispišete $moj_string vidjeti ćete da linije koje smo mu dodijelili nisu odvojene već će se ispisati: Proba višelinijskog stringa Novi red Još jedan red • Ako smo željeli razdvajati redove mogli smo upotrijebiti \n znak na kraju reda.
Strpos funkcija • strpos funkcija služi za određivanje pozicije prvog trazenog znaka trazenog string unutar stringaArgumenti strpos funkcije su: strpos($moj_string, "traženi_string"); ilistrpos($moj_string, "traženi_znak", početna_pozicija); • Budući dastrpos uvijek vrati ili prvi pronađeni string ili false (ako ne pronađe traženi) treći argument je opcijakoja služi da bismo pronašli slijedeći trazeni_string unutar moj_string • Povratna pozicija je uvijek za jedan manja jer strpos broji od 0
Primjer: <? $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 zamjenu određenog stringa unutar stringa. Najsličniji primjer toj funkciji je Replace all funkcija u wordu na primjer.Argumenti str_replace funkcije str_replace(trazeni_string, zamjeni_stringom, originalni_string).Primjer: <?$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 • substr_replace funkcija za razliku od str_replace bazira se na poziciji u stringu. • Argumenti substr_replace funkcije substr_replace(orginalni_string, zamjeni_stringom, od pozicije); ili substr_replace(orginalni_string, zamjeni_stringom, od pozicije, koliko_znakova_zelimo_zamijeniti);Ukoliko kao argument koliko_znakova_zelimo_zamijeniti stavimo 0 funkcija će umijesto zamjene izvršiti ubacivanje stringa na danoj poziciji. Primjer: <? $moj_string = "Bio jednom jedan pas "; $string_rezultat= substr_replace($moj_string,"vuk",17); echo $string_rezultat; ?> Rezultat: Bio jednom jedan vuk
Ispis iz PHP • Echo funkcija uz print funkciju u PHPu služi kako bi se dobio ispis (na ekran) vrijednosti. Primjer: <? $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 slijedećem: Ne smijemo koristiti " unutar echo-a jer on navodnike koristi kako bi označio početak ili kraj ispisa. Ako hoćemo ispisati " moramo ga pisati skupa s \ ili koristiti umijesto " znak ' unutar navodnika. Print funkcija Identična funkcija i upotreba kao i Echo funkcija Print_r funkcija Upotrebljava se za ispis nizova (Array-a)
PHP petlje • While ponavlja uklješteni kod dok got je zadani uvijet zadovoljen Primjer: <? $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 uvijek izvrši bar jedanput jer provjerava uvijet nakon izvršenja. Primjer: <? do { kod koji se ponavlja - izvršava se jednom bez obzira na uvjet } while (uvjet); ?>
For petlja se razlikuje od while petlje samo po tome što dopušta definiranje i inicijalizaciju brojača u jednoj liniji Primjer: <? for($brojac = 1;$brojac<=3;$brojac++){ echo $brojac." "; } ?>
For each petlja za svaki element niza izvršava kod. Primjer: <? $dan_datum["Ponedjeljak"] = "1.1.2007"; $dan_datum["Utorak"] = "2.1.2007"; $dan_datum["Srijeda"] = "3.1.2007"; foreach($dan_datum as $dan => $datum){ echo $datum." je ".$dan."<br />"; } ?> Ispis: 1.1.2007 je Ponedjeljak 2.1.2007 je Utorak 3.1.2007 je Srijeda
PHP mogućnosti uvijetnog izvršavanja koda • If naredbu koristimo kako bismo uvjetovali izvršenje određenog dijela koda nekim uvjetom Primjer: <? $i=1; if ($i==1){ echo "Uvjet je zadovoljen"; } if ($i==2){ echo "Uvjet nije zadovoljen"; } ?>
if/else samo proširava if naredbu, a koristimo je kako bismo uvjetovali izvršenje određenog dijela koda nekim uvjetom i izvršenje drugog koda u slučaju ne zadovoljavanja uvijeta. Primjer: <? $i=2; if ($i==1){ echo "Uvjet je zadovoljen"; } else { echo "Uvjet nije zadovoljen"; } ?>
Switch radi na način da provjerava jednu varijablu s više različitih slučajeva vrijednosti koje definiramo. <? $i=2; switch($i){ case 1: echo "i=1"; break; case 2: echo "i=2"; break; default: echo "i nije među definiranim"; break; } ?>
Funkcije • Funkcija nije ništa drugo nego naziv koji dajemo određenom bloku koda, s namjerom da ga upotrijebimo više puta. Primjer funkcije s argumentom: <? function moja_prva_funkcija($argument){ echo "Ja sam napisao svoju prvu funkciju s ".$argument; } echo "Tu je dio koda prije upotrebe funkcije...."; moja_prva_funkcija("argumentom"); echo "..........Tu je dio koda poslije upotrebe funkcije...."; moja_prva_funkcija("drugim argumentom"); echo "..........Tu je dio koda poslije ponovnog upotrebe funkcije...."; ?>
Klase • Klasa je kolekcija funkcija i varijabli, odnosno klase definiraju objekt kao predložak za stvarne varijable. • 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*/ { } var $varijabla; /*varijable*/ function moja_funkcija(){} /*jedna ili više funkcija*/ } ?>
PHP nizovi(Array) • Niz (array) je podatkovna struktura koja omogućava pohranjivanje više vrijednosti u jednu. • Index može biti brojčani ili znakovni. Primjer: <? $niz_za_primjer_brojcani_index[0]="Primjerko"; $niz_za_primjer_brojcani_index[1]="Fran"; $niz_za_primjer_brojcani_index[2]="Lovro"; $niz_za_primjer_znakovni_index["Fran"]="Prvi"; $niz_za_primjer_znakovni_index["Lovro"]="Drugi"; ?>
PHP spajanje na Mysql • Preduvijet za spajanje je naravno taj da prije toga morate imati kreiranu bazu u Mysql-u Primjer spajanja: <? mysql_connect("vas_server", "korisnicko_ime", "lozinka") or die("Neuspjela konekcija") ; mysql_select_db("naziv_vase_baze") or die("Neuspjelo 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 željeli (preuzeli podatke, pohranili podatke...) potrebno je konekciju zatvoriti s 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.
Primjer: Za ovaj primjer 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 Primjerko prezime Primjerić Drugi zapis: ime Robert prezime Gruber
<? mysql_connect("moj_posluzitelj", "korisnik", "lozinka") or die("Neuspjela konekcija"); mysql_select_db("moja_baza") or die("Neuspjelo otvaranje baze"); /*Da bismo dohvatili podatke koristimo slijedeći sql upit*/ $rezultat = mysql_query("SELECT * FROM `moji_podaci`") or die("Neuspjelo"); /*Da bismo rezultat upita pohranili u varijablu koristimo slijedeć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 upotrijebit ćemo petlju*/ while($podaci = mysql_fetch_array( $rezultat )) { echo "Ime: ".$podaci['ime'] . " Prezime: ".$podaci['prezime]. "<br /> "; } mysql_close(); ?>
PHP pohrana podataka Mysql Primjer: Koristimo istu tablicu kao u prošlom primjeru. <? mysql_connect("moj_posluzitelj", "korisnik", "lozinka") or die("Neuspjela konekcija"); mysql_select_db("moja_baza") or die("Neuspjelo otvaranje baze"); /*Ubacit ćemo slijedeći podatak ime:Robert, prezime: Gruber */ $ime="Robert"; $prezime="Gruber"; mysql_query("INSERT INTO `moji_podaci` (`ime`, `prezime`) VALUES ('$ime', '$prezime');"); mysql_close(); ?>