26
PHP TUTORIJALI Instalacija PHP-a Kada želite napraviti web stranicu baziranu na PHP-u prvo morate imat otvoren korisnički račun kod nekog web hosting providera. Također taj vaš račun kod tog providera mora imati podršku za PHP (što je naznačeno u opisu računa) i pristup MySQL bazama podataka. Također morate imati i PHP i MySQl instaliran na vašem računalu. MySQl nije obavezan kod korištenja PHP ali sa kombinacijom PHP & MySQL možete raditi čuda. Link za download PHP i uputstva za instalaciju možete naći ovdje. Instalacija: Php možete instalirati automatski koristeći Windows installer i onda će on biti automatski i podešen, ali ta instalacija nije sigurna te bi trebali ipak PHP instalirati ručno. Ručnih načina za instalaciju ima puno, a o vašim potrebama ovisi na koji način (i što sve) ćete instalirati. Zašto instalirati php? Ako vaš server podržava PHP onda nema nikakve potrebe instalirati PHP. Testiranje Sve vaše skripte možete testirati sa programom XAMPP Sintaksa Syntaxe su pravila koja moramo poštovati pri pisanju nekog koda tako da bi taj kod radio. O programskom jeziku ovisi kakve ćemo syntax koristiti. <?php neki kod ?> Ako hoćete da vaš php kod radi onda se on mora nalaziti unutar ovih tagova. Kako spremiti PHP stranicu? Ako hoćete da browser izvrši vaš kod u toj stranici stranica (datoteka) mora imati ekstenziju .php Razmaci Razmaci u PHP-u su potpuno dopušteni. U PHP skripti možete koristiti razmake, uvlačiti određene dijelove koda sa Tab tipkom; za razliku od HTML gdje razmaci nisu dopušteni. Hello world!

Php Tutorijali

Embed Size (px)

DESCRIPTION

PHP

Citation preview

Page 1: Php Tutorijali

PHP TUTORIJALI 

Instalacija PHP-a 

Kada želite napraviti web stranicu baziranu na PHP-u prvo morate imat otvoren korisnički račun kod nekog web hosting providera. Također taj vaš račun kod tog providera mora imati podršku za PHP (što je naznačeno u opisu računa) i pristup MySQL bazama podataka.Također morate imati i PHP i MySQl instaliran na vašem računalu. MySQl nije obavezan kod korištenja PHP ali sa kombinacijom PHP & MySQL možete raditi čuda.Link za download PHP i uputstva za instalaciju možete naći ovdje.

Instalacija:Php možete instalirati automatski koristeći Windows installer i onda će on biti automatski i podešen, ali ta instalacija nije sigurna te bi trebali ipak PHP instalirati ručno. Ručnih načina za instalaciju ima puno, a o vašim potrebama ovisi na koji način (i što sve) ćete instalirati.

Zašto instalirati php?Ako vaš server podržava PHP onda nema nikakve potrebe instalirati PHP.

TestiranjeSve vaše skripte možete testirati sa programom XAMPP

Sintaksa 

Syntaxe su pravila koja moramo poštovati pri pisanju nekog koda tako da bi taj kod radio. O programskom jeziku ovisi kakve ćemo syntax koristiti.

<?phpneki kod?>

Ako hoćete da vaš php kod radi onda se on mora nalaziti unutar ovih tagova.

Kako spremiti PHP stranicu?

Ako hoćete da browser izvrši vaš kod u toj stranici stranica (datoteka) mora imati ekstenziju .php

Razmaci

Razmaci u PHP-u su potpuno dopušteni. U PHP skripti možete koristiti razmake, uvlačiti određene dijelove koda sa Tab tipkom; za razliku od HTML gdje razmaci nisu dopušteni.

Hello world!

Sada ćemo napraviti primjer jedne HTML i PHP stranice:

<html><head><title>jednostavna stranica</title></head><body><?phpecho "Hello World!";?></body></html>

Page 2: Php Tutorijali

Rezultat u browseru:Hello World!

Točka-zarez ;

; ovaj znak na kraju koda govori da je PHP tvrdnja gotova i taj znak nikad nesmijete zaboraviti

Komentari

Komentari u PHP su slični komentarima u HTML-u, ali PHP ima 2 tipa komentara:1) jednolinijski komentar. Kada stavite ovaj znak // sve desno od tog znaka će biti komentar2) višelinijski komentar.ova vrsta komentara počinje sa /* i završava sa */

Varijable 

Kao i mnogim drugim programskim jezicima pa tako i u PHP-u varijable nam služe da pohranimo neku vrijednost. Kada spremimo neku vrijednost u neku varijablu možemo je koristiti dalje u kodu bez potrebe da ponovo upisujemo tu vrijednost.

Evo primjera:

$ime_korisnika = "Mario";

Primjetite navodnike kod imena Mario.

ili 

$broj = 189;

Primjetite da kod brojeva ne trebaju navodnici.

Pravila imenovanja varijabli

- PHP varijable moraju početi sa slovom ili znakom _- PHP varijable mogu sadržavati jedino alfa-numeričke znakove a-z , A-Z, 0-9 ili _- Varijable sa više riječi trebale bi biti razdvojene sa _ ili ih možete napisati ovako da razlikujete riječi u imenu: 

$mojaVarijabla

Include funkcija

Page 3: Php Tutorijali

PHP funkcija INCLUDE vam može spasiti puno vremena.Ta funkcija uzima datoteku i ubacuje njen sadržaj u skriptu koja je pozvala tu funkciju.

Primjer:Recimo da smo htjeli napraviti uobičajeni file menu koje će sve naše stranice korisititi. Kada hoćemo neke stranice includati običaj je da imaju .inc exstenziju. Menu ćemo nazvati „menu.inc“

<html> <body><a href="index.php">Početna</a> - <a href="about.php">O nama</a> - <a href="links.php">Linkovi</a> - <a href="contact.php">Kontakt</a> <br />

Spremite ovo iznad pod „menu.inc“. Sada napravite novi file imenom "index.php" u istom direktoriju kao i menu.inc. Ovdje ćemo iskoristiti prednosti include funkcije i dodat ćemo našem menu-u kod indeks.php.

<?php include("menu.inc"); ?><p>Ovo je moja stranica!</p></body></html>

Prikaz:Početna – O nama - Linkovi - Kontakt 

Ovo je moja stranica!

Ako koristimo include funkciju da includamo menu na svakoj našoj stranici, korisnik će, ako gleda kod indeks.php, vidjeti:

<html> <body><a href="index.php">Početna</a> - <a href="about.php">O nama</a> - <a href="links.php">Linkovi</a> - <a href="contact.php">Kontakt</a> <br /> <p> Ovo je moja stranica!</p></body></html>

Sažetak

Include komanda uzima sav tekst koji postoji u nekom fileu i kopira ga u file koji koristi inlude funkciju. Include funkcija je korisna kada želiš inlcludati više stranica i kod izrade web-stranica .

Require funkcija

Require funkcija se koristi kad se hoće includati file u vaš php kod. Ali postoji ogromna razlika između require i include funkcije:Kada includaš file sa include funkcijom i PHP nemože naći file vidjet ćeš grešku:

<?phpinclude("nepostojifile.php");echo "Hello World!";?>

Page 4: Php Tutorijali

Prikaz:Warning: main(nepostojifile.php): failed to open stream: No such file or directory in /početna/imeStranice/imeFoldera/skripta.php on line 2Warning: main(): Failed opening 'nepostojifile.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /početna/imeStranice/imeFoldera/skripta.php on line 2

Hello World! 

Primjetili ste da se naša echo tvrdnja izvršila iako se pojavilo upozorenje, zbog toga što WARNING ne spriječava php skriptu da se ona izvrši. Ali, ako koristimo require funkciju, dobit ćemo sljedeće:

<?phprequire("nepostojifile.php");echo "Hello World!";?>

Prikaz:Warning: main(nepostojifile.php): failed to open stream: No such file or directory in /početna/imeStranice/imeFoldera/skripta.php on line 2Fatal error: main(): Failed opening required 'nepostojifile.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /početna/imeStranice/imeFoldera/skripta.php on line 2 

Echo tvrdnja se nije izvršila zato što se skripta nije izvršila nakon što je require funkcija vratila kao rezultat grešku. Preporuča se da se korisiti require funkcija umjesto include zbog toga da se vaše skripte ne izvršavaju ako neki važni fileovi nedostaju ili su krivo imenovani.

IF petlja 

PHP petlja IF je jako slična petlji IF iz raznih drugih programskih jezika. Također, ta petlja je bitna za svako programiranje.Primjer:

<?php$moje_ime = "Bond";if ( $moje_ime == "Bond" ) {echo "Moje ime je Bond!<br />";}echo ",James Bond";?>

Rezultat:

Moje ime je Bond!,James Bond

Također, u PHPu, kada uspoređujete dvije varijable i želite provjeriti jesu li one jednake onda koristite = =U ovom slučaju, rezultat je bio istinit.Sada ćemo provjeriti šta će se dogoditi ako je rezultat te dvije usporedbe lažan:

<?php$moje_ime = "Zagor";if ( $moje_ime == "Bond" ) {

Page 5: Php Tutorijali

echo "Moje ime je Bond!<br />";}echo ",James Bond"; ?>

Rezultat:,James Bond

U ovom slučaju, varijabla Zagor nije bila jednaka varijabli Bond, pa zbog toga je izvršen samo dio echo "Moje ime je Bond!";

Ako znate koristiti petlju IF pravilno, ona može postati itekako važna u vašem programiranju.

IF/ELSE petlje 

If/else petlja je napredniji oblik „čiste“ IF petlje. Objasnit ću vam kako radi IF/ELSE petlja: Želite na svojoj stranici pitati korisnike jesu li zadovoljni sa izgledom stranice. Sa IF petljom je to jako jednostavno. Postavite dva pitanja: „Zadovoljan sam“ i „nisam zadovoljan“. Ako odabere „Zadovoljan sam“ proslijedite ga natrag stranicu, a ako odabere „nisam zadovoljan“ proslijedite ga na stranicu (npr) „prijedlozi“.

Najjednostavniji primjer if/else petlje:

<?php$broj_jedan = 1;if ( $broj_jedan == 1 ) {echo "Ova tvrdnja je tocna";} else {echo "Ova tvrdnja nije tocna";} ?>

Rezultat:Ova tvrdnja je tocna

U ovom slučaju, tvrdnja je bila točna. Sada ćemo napraviti primjer gdje tvrdnja nije točna:

<?php$broj_jedan = 15;if ( $broj_jedan == 23 ) {echo "Ova tvrdnja je tocna";} else {echo "Ova tvrdnja nije tocna";} ?>

Rezultat:Ova tvrdnja nije tocna

Page 6: Php Tutorijali

Elseif petlja 

Elseif petlja, za razliku od If/else petlje, je dobra kada se treba provjeriti više od jednog uvjeta. Toj petlji mora prethoditi if petlja. Ako je rezultat if petlje neistinit, PHP će provjeriti elseif petlju. Ako je rezultat te petlje također neistinit, PHP će provjeriti, ako ih ima, sljedeću elseif petlju. Ako više nema elseif petlji ,php će izbaciti rezultat zadan else petljom.

Sada ćemo napraviti jedan osnovni primjer. Želimo, na primjer, provjeriti jeli neki zaposlenik u nekoj tvrtki šef (nazvat ćemo ga Pero):

<?php$zaposlenik = "Pero";if($zaposlenik == "Stefica"){echo "Dobro jutro mala";} else {echo "Jutro";} ?>

A ako smo htjeli također provjeriti jeli zaposlenik zaposlenik Pero šef moramo koristiti elseif petlju.

<?php$zaposlenik = "Pero";if($zaposlenik == "Stef"){echo "Dobro jutro mala";} elseif($zaposlenik == "Pero"){echo "Dobro jutro šefe!";}else {echo "Jutro";} ?>

Rezultat:Dobro jutro šefe!

SWITCH petlja 

Sa switch petljom možete provjeriti jako puno uvjeta odjedanput. Switch petlja je puno brža, korisnija i jednostavnija od if petlje. Jedna switch petlja može zamijeniti desetke if petlji.Switch petlja radi tako da uzme jednu varijablu i provjerava je sa svim dostupnim slučajevima.

Primjer:

<?php$vrijeme = "suncano";echo "Vrijeme ce biti $vrijeme<br />";switch ($vrijeme){case "suncano":echo "Ponesi suncane naocale.";break; case "kisovito":echo "Ponesi kisobran!";break; case "hladno":echo "Dobro se obuci";break; 

Page 7: Php Tutorijali

} ?>

Prikaz:Vrijeme ce biti suncanoPonesi suncane naocale.

Također, dobra je ideja da napravite jedan zadani slučaj:

Primjer:

<?php$vrijeme = "maglovito";echo "Vrijeme ce biti $vrijeme<br />";switch ($vrijeme){case "suncano":echo "Ponesi suncane naocale.";break; case "kisovito":echo "Ponesi kisobran!";break; case "hladno":echo "Dobro se obuci";break; default:echo "Cuvaj se!";break; } ?>

Rezultat:Vrijeme ce biti maglovitoCuvaj se!

Formulari

Na web stranicama se može često vidjeti razne forme koje korisnik može ispuniti, naprimjer kod registracije, online kupovanja….itd.Prvo što moramo napraviti kod ovakve vrste forme, gdje HTML forma šalje podatke PHP stranici je, naravno HTML forma. 

Odmah u samome početku morate znati da php razlikuje $varijabla od $Varijabla. Dakle na to morate pripaziti jer su to zapravo dvije sasvim različite varijable.Pri definiranju varijable treba znati i da ona ne smije počinjati sa brojevima, iako ih smije sadržavati.

Krenimo od početka. Kao što sam već rekao u prethodnom dijelu da biste radili u php-u potrebno je predznanje osnova html-a. Sljedeći kod je html forma u koju je potrebno unjeti ime i prezime.

<form method="POST" action="obradi.php"><input type="text" name="ime" size="20"> Ime <br /><input type="text" name="prezime" size="20"> Prezime <br /><input type="submit" value="Pošalji" name="posalji"></form>

Dakle analizirajmo taj gore kod. U prvoj liniji vidite method=POST, taj dio koda govori kako će se podatci nformulara slati skripti, osim ove metode postoji i GET metoda. Razlika je u tome što pri POST metodi korisnik ne vidi što formular zapravo šalje skripti, ta metoda je sigurnija.

Page 8: Php Tutorijali

U nastavku prve linije se nalazi action=obradi.php, taj dio govori formularu kojem fajlu da se šalju podatci iz formulara na obradu.Ovaj ostatak je jasan, tu se nalazi kod za polja koja treba popuniti.

Ovaj gore kod spremite kao forma.htm

Sada napravite novi fajl i nazovite ga obradi.php.U taj fajl pišite sljedeći kod:

<?php$ime = $_POST[ime];$prezime = $_POST[prezime];

Echo "Vaše ime je $ime, a prezivate se $prezime .";

?>

Da analiziramo i ovo. Prva linija varijabli $ime daje vrijednost polja „ime“ iz formulara. Ime polja smo zadali u formularu u dijelu name=ime. Ista stvar je i u drugoj liniji. Treća linija koda ispisuje rečenicu sa varijablama na odgovarajućim mjestima.Sada u browser upisite http://localhost/forma.htm i isprobajte skriptu.

U nastavku ćemo napisati još jedan jednostavan primjer pomoću formi. Napraviti ćemo jednostavnu aplikaciju koja će zbrojiti dva broja.

Dakle imamo ovakav formular:

<form method="POST" action="zbroji.php"><input type="text" name="broj1" size="20"> broj1 <br /><input type="text" name="broj2" size="20"> broj2 <br /><input type="submit" value="ZBROJI" name="zbroji"></form>

Spremimo to kao zbrajanje.htm

Sada kao što se iz formulara vidi treba nam skripta koja će zbrojiti brojeve koje unesemo, fajl se zove zbroji.php, a kod bi izgledao ovako:

<?php$broj1 = $_POST[broj1];$broj2 = $_POST[broj2];$zbroj = $broj1+broj2;

Echo "Rezultat je: $zbroj";

?>

Dakle prve dvije linije su jasne jer sam ih prethodno već objasnio. Jedino ova treća linija je nešto novo. Dakle tu varijabli $zbroj dajemo vrijednost $broj1+$broj2. Ona zbraja ta dva broja, znači zbroj tih brojeva je njezina vrijednost. U nastavku echo ispisiuje rezultat zbrajanja. Osim zbrajanja možete staviti bilo koju drugu matematičku operaciju. Ova skripta naravno ima nedostataka, na primjer što bi se dogodilo da umjesto broja unesete slova. Tada bi skripta ispisala da je rezultat 0, jer brojeva nema.

Evo sada jednog jednostavnog primjera pizzerije. Napravit ćemo formu i spremiti ju u narudzba.html

Kod narudzba.html:

<html><body><b>Pizzerija kod Debele babe</b>

Page 9: Php Tutorijali

<form><select> <option>mala pizza</option><option>srednja pizza</option><option>velika pizza</option></select>Kolicina: <input type="text" /> <input type="submit" /></form></body></html> 

Ovo ćemo spremiti pod narudzba.html

Prikaz:

Ali mi želimo da naša HTML forma odredi PHP stranicu kojoj ćemo poslati informacije. Naravno, koristiti ćemo metodu POST.Kod narudžbe.html:

<html><body><b>Pizzerija kod Debele babe</b><form action="procesiranje.php" method="post"><select name="velicina"> <option>mala pizza</option><option>srednja pizza</option><option>velika pizza</option></select>Kolicina: <input name="kolicina" type="text" /> <input type="submit" /></form></body></html> 

Sada ćemo napraviti procesiranje.php koji će obraditi podatke.

<html><body><?php$kolicina = $_POST['kolicina'];$velicina = $_POST['velicina'];echo "Vi ste narucili ". $kolicina . " " . $velicina . ".<br />";echo "Dodite nam opet!";?></body></html>

Ako netko odabere npr: 5 i malu pizzu rezultat će biti:Vi ste narucili 5 mala pizza.Dodite nam opet!

Napomena: rezultat izgleda kao da ga je rekao, tj. pisao indijanac. Taj problem ostavljam na vama da ga riješite kako god vam se sviđa!

Nadam se da vam je jasnije korištenje formulara, malo sada sa ovime što smo naučili isprobavajte.

Page 10: Php Tutorijali

Pokušajte staviti više polja u formular. Već smislite nešto.

PHP operatori 

Operatori se koriste da upravljaju ili izvode operacije na varijablama i vrijednostima.Kako je puno operatora koji se koriste u PHP, oni su svrstani u sljedeće kategorije:

Pridružujući operatori (Assignment Operators)Matematički (aritmetički) operatori (Arithmetic Operators)Uspoređivajući operatori (Comparison Operators)Znakovni operatori (String Operators)Kombinirani matematički i pridružujući operatori

Pridružujući operatori

-koriste se da bi izjednačili dvije varijable ili da izjednače vrijednost jedne varijable sa vrijednosti druge varijable.-takva pridruživanja obavljamo sa znakom jednakosti “= “Primjer:

$prva_varijabla = 9;$druga_varijabla = $prva_varijabla

Sada obadvije varijable sadrže vrijednost 9.

Matematički operatori

Operator Značenje+ zbrajanje- oduzimanje* množenje/ dijeljenje% ostatak 

Kod:

<?php$zbrajanje = 2 + 4; $oduzimanje = 6 - 2; $mnozenje = 5 * 3; $dijeljenje = 15 / 3; $ostatak = 5 % 2; echo "zbroji: 2 + 4 = ".$zbrajanje."<br />"; echo "oduzmi: 6 - 2 = ".$oduzimanje."<br />"; echo "pomnozi: 5 * 3 = ".$mnozenje."<br />"; echo "podijeli: 15 / 3 = ".$dijeljenje."<br />"; echo "izracunaj ostatak: 5 % 2 = ".$ostatak.";?>

Prikaz:zbroji: 2 + 4 = 6 oduzmi: 6 - 2 = 4 pomnozi: 5 * 3 = 15 podijeli: 15 / 3 = 5 izracunaj ostatak: 5 % 2 = 1

Uspoređivajući operatori

-koriste se da bi provjerili odnos između varijabli i/ili vrijednosti. Imaju dva rezultata :true i false.

Page 11: Php Tutorijali

Ovo su najvažniji u PHP-u:

$a = 1; $b = 2; 

Operator Značenje Primjer Rezultat == jednako $a == $b false === apsolutno jednako $a===$a true!= nije jednako $a != $b true < manje od $a < $b true > veće od $a > $b false <= manje ili jednako od $a <= $b true >= veće ili jednako od $a >= $b false

Znakovni operatori

-točka "." se koristi da bi se spojila dva stringa Kod:

<?php$prvi_string = "Bok";$drugi_string = " stari";$novi_string = $prvi_string . $drugi_string;echo $novi_string . "!"; ?>

Prikaz:Bok stari!

Kombinirani matematički i pridružujući operatori

U programiranju ćete vrlo često naići na potrebu da povećate varijablu za neki određeni iznos. Najjednostavniji primjer je brojač. Recimo da želite povećavati brojač za jedan.

$brojac = $brojac + 1;

Ali, kraće to možete napraviti ovako:$brojac += 1;

Ovakav operator će napraviti isto kao i ovaj prošli. Jedini manjak ovog novog operatora je da smanjuje čitljivost koda programerima koji nisu naučili na takav operator. Ovo su primjeri najpoznatijih operatora:

Operator Značenje Primjer Drugi način:+= plus jednako $x += 2; x = $x + 2; -= minus jednako $x -= 4; x = $x - 4; *= množenje jednako $x *= 3; x = $x * 3; /= dijeljenje jednako $x /= 2; x = $x / 2; %= ostatak jednako $x %= 5; x = $x % 5; .= ulančena izjednačavanja$moj_string.="bok";$moj_string = $moj_string."bok"

Prije/Poslije-povećanje i Prije/Poslije-smanjenje

Postoji i još kraći način za dodavanje ili oduzimanje 1 od varijable. Da dodamo jedan varijabli koristimo operator ++

$x++; ovo je jednako $x += 1; ili $x = $x + 1;

Ako želimo oduzeti jedan od varijable koristimo -- operator:$x--; ovo je jednako $x -= 1; ili $x = $x - 1;

Također, možemo odrediti želimo li uvećati varijeblu za jedan prije nego što se linija koda izvrši ili

Page 12: Php Tutorijali

nakon njezinog izvršavanja:

Kod:

<?php $x = 1;echo "vrijednost x sa poslije-uvecanja = " . $x++;echo "<br /> vrijednost x poslije poslije-uvecanja je " . $x;$x = 1;echo "<br />vrijednost x sa prije-uvecanja = " . ++$x; echo "<br /> vrijednost x poslije prije-uvecanja je" . $x;?>

Prikaz:vrijednost x sa poslije-uvecanja = 1vrijednost x poslije poslije-uvecanja je = 2vrijednost x sa prije-uvecanja = 2vrijednost x poslije prije-uvecanja je = 2

Arrays 

Sa arrayima možemo spremiti više vrijednosti u jednu varijablu.

Numeričko indexirani array

Ako želimo, npr. spremiti više imena u jednu varijablu, tako da poslije nemoramo pozivati svako ime sa svojom zasebnom varijablom, to ćemo napraviti ovako:

$ime_array[0] = "Gogy";$ime_array[1] = "Leviathan";

Koristili smo key/value strukturu arraya:$array[key] = value;

Sada ako želimo iskoristiti tu varijablu to ćemo napraviti ovako:

echo "Tko su face?". $ime_array[0] . " & " . $ime_array[1];

Prikaz:Tko su face? Gogy & Leviathan

Pridruženi arrayi

U pridruženim arrayima ključ je pridružen vrijednosti:$godine["Gogy"] = 18;$godine["Leviathan"] = 16;

echo "Gogy ima " . $godine["Gogy"] . "<br />";echo "Leviathan ima " . $godine["Leviathan"];

Page 13: Php Tutorijali

While loop 

Loop koristimo kada trebamo nešto ponavljati dok se ne zadovolji neki uvjet i dok se neki zadatak ne izvrši. 

Pogledajmo primjer jednog loopa:

<?php

$broj = 1;while($broj<=50) {echo "Tutorijali.Net";$broj++;}

?>

Dakle varijabli $broj smo dodali vrijednost 1. Pomoću while smo definirali da se ponavlja "Tutorijali.Net" sve dok je varijabla $broj manja ili jednaka broju 50. Pomoću $broj++; smo napravili da se nakon ispisa vrijednost varijable $broj poveća za 1. I tako ide sve do broja 50.

Do... While

Evo jednostavnog primjera za do...while.

<?php

$broj = 1;do { echo "Ispisuje se broj $broj <br />";$broj++;} while ($broj > 100 && < 600 );

?>

While je vrlo često korištena stvar kod čitanja podataka iz baze pa bi bilo dobro da to dobro naučite. 

Upravljanje datotekama PHP-om: UVOD

Stvaranje, editiranje, otvaranje i brisanje datoteka pomoću php-a je osnova svakog većeg ozbiljnog programiranja.Ovi sljedeći tutorijali će vas naučiti gotovo svemmu što trebate znati ako želite manipulirati datotekama pomoću PHP-a.

Upozorenje:

Kada manipulirate datotekama php-om morate biti vrlo oprezni zato što možete napraviti veliku štetu ako napravite nešto krivo. Uobičajene greške su: editiranje pogrešnih datoteka, stvaranje smeća na vašem disku i slučajno brisanje sadržaja datoteka ili cijelih datoteka.

Page 14: Php Tutorijali

Upravljanje datoteka PHP-om: stvaranje datoteke

Sada ćemo naučiti kako stvoriti datoteku koristeći PHP.Važno:-u php-u datoteke se stvaraju istom komandom koja se koristi i za otvaranje datoteka! Funkcija za stvaranje datoteka se zove fopen. Ako naredimo php-u da otvori datoteku koja ne postoji on će je stvoriti. Ako takva datoteka postoji, php će je otvoriti bez stvaranja nove.

Fopen funkcija mora sadržavati dvije važne informacije: moramo joj dati ime datoteke koju ćemo otvoriti/stvoriti i moramo joj reći što ćemo raditi s tom datotekom (primjer: čitati ćemo iz nje).

Kod:

<?php$imedatoteke = "test.txt";$upravljanjedatoteke = fopen($imedatoteke, 'w') or die("datoteka se nemoze otvoriti");fclose($upravljanjedatoteke);?>

-moramo reći php-u da ćemo pisati u datoteku, inače php neće stvoriti novu datoteku.

Datoteka test.txt bi trebala biti stvorena u istom direktoriju u kojem se nalazi ovaj kod. PHP će vidjeti da datoteka test.txt ne postoji i stvoriti će novu nakon što se ovaj kod pokrene. Sada ćemo objasniti svaku liniju koda:

$imedatoteke = "test.txt";

Ovdje smo odredili ime datoteke i spremili ga u varijablu $imedatoteke

$upravljanjedatoteke = fopen($imedatoteke, 'w') or die("datoteka se nemoze otvoriti");

Ovaj linija koda ima dva dijela: prvi se sastoji od funkcije fopen i njoj smo dali dva argumenta: ime datoteke i rekli smo php-u da želimo pisati sa slovom W.Drugi, fopen funkcija vraća „file handle“(upravljač datoteke) koji nam dopušta da manipuliramo sa datotekom. Spremili smo upravljač datoteke u varijablu $upravljanjedatoteke.

fclose($upravljanjedatoteke);

S ovim zatvaramo datoteku koju smo otvorili.

Važno!Ako pokušavate pokrenuti ovaj program i on vam stalno javlja grešku provjerite jeste li dopustili vašem PHP-u da zapisuje informacije na disk. Ovaj problem se najčešće rješava ako uz pomoć FTP programa izvršimo komandu CHMOD.

Upravljanje datotekama PHP-om: Otvaranje datoteka 

U ovoj ćemo lekciji naučiti različite načine otvaranja datoteke.

Osnovni načini: čitaj: 'r'-otvara datoteku samo za čitanje.

Page 15: Php Tutorijali

piši: 'w'-otvara datoteku samo za pisanje. Ako išta zapišete u datoteku prijašnji podaci će biti izbrisani i počet ćete pisati na početku datoteke.

nadopisivanje: 'a'-otvara datoteku samo za pisanje, ali prijašnje informacije u datoteci su sačuvane i počet ćete pisati na kraju datoteke.

-file pointer (pokazivač u datoteci)– način na koji PHP zapamćuje lokaciju u datoteci. Kada otvorite datoteku samo za čitanje ili samo za pisanje pokazivač se nalazi na početku datoteke. Ali, kada otvorite datoteku za nadopisivanje, pokazivač se nalazi na kraju datoteke. 

Napredni načini:

Također, postoje načini u kojima možete dopustiti čitanje i pisanje. Ovo najčešće postižemo stavljanjem znaka + pored znaka koji nam govori što želimo napraviti s datotekom.

Čitaj/Piši: 'r+'-otvara datoteku tako da možemo čitati iz nje i pisati u nju. Pokazivač se nalazi na početku datoteke.

Piši/čitaj: 'w+'-isti način kao i r+ samo što ovaj način briše sve informacije u datoteci kada je ona otvorena.

nadopisivanje: 'a+'-isti način kao i r+, samo što se pokazivač nalazi na kraju datoteke.

Obrazac (forma) za otvaranje datoteke:

<?php$imedatoteke = "test.txt";$ud = fopen($imedatoteke, 'X') or die("datoteka se nemoze otvoriti");fclose($ud);?>

Zamijenite X sa r,w,a … ovisi o tome što želite raditi sa datotekom.

Upravljanje datotekama PHP-om: Zatvaranje datoteke 

U ovom ćemo tutorijalu se upoznati sa time kako zatvoriti datoteku.

U PHP-u nije potrebno zatovriti sve datoteke nakon što ste ih koristili zato što će server zatvoriti sve datoteke kada se izvrši PHP kod. Ipak, programer može slučajno pogriješiti (npr. editirati datoteku koju smo zaboravili zatvoriti).

Za zatvaranje datoteke koristimo funkciju fclose:Kod:

<?php$imedatoteke = "test.txt";$ud = fopen($imedatoteke, 'w') or die("datoteka se nemoze otvoriti");fclose($ud);?>

Funkcija fclose zahtijeva upravljač datoteke koju želimo zatvoriti. Kada zatvorimo datoteku nemoguće ju je čitati, pisati ili nadodati u nju osim ako je ponovno ne otvorimo sa fopen funkcijom.

Page 16: Php Tutorijali

Upravljanje datotekama PHP-om: Pisanje u datoteku

U ovom ćemo tutorijalu naučiti kako pisati u datoteku. Funkcija kojom pišemo se zove fwrite:

Prvi korak je otvaranje naše test datoteke funkcijom fopen.Kod:

<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'w'); ?>

Sa php-om možemo pisati u bilo koju datoteku. Funkciji fwrite moramo dati upravljač datotekom i ime datoteke u koju ćemo pisati. 

Sada ćemo napisati par imena u našu test datoteku.Kod:

<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'w') or die("datoteka se nemoze otvoriti");$podaci = "Gogy\n";fwrite($ud, $podaci);$podaci = "&\n";fwrite($ud, $podaci);$podaci = "Leviathan\n";fwrite($ud, $podaci);$podaci = "su face\n";fwrite($ud, $podaci);fclose($ud); ?>

Varijabla $ud sadržava upravljač datotekom test.txt.Napisali smo u datoteku test.txt četiri puta.Ako bi sada otvarali datoteku test.txt njen bi sadržaj izgledao ovako:

Gogy&Leviathansu face

Pisanje preko sadržaja:

Sada kada test.txt sadrži neki podatak možemo demonstrirati što se događa kada otvorite postojeću datoteku za pisanje. Svi podaci koje je datoteka sadržavala će biti izbrisani i vi dobijate praznu datoteku.

Kod:

<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'w') or die("datoteka se nemoze otvoriti");$podaci = "tutorijal.net team\n";fwrite($ud, $podaci);fclose($ud); ?>

Ako sada otvorite test.txt vidjet ćete da je prijašnji tekst nestao i da datoteka sadrži samo podatke koje smo upisali:Tutorijal.net team

Page 17: Php Tutorijali

Upravljanje datotekama PHP-om: čitanje iz datoteke 

Sada ćemo naučiti kako čitati informacije iz datoteka.

Prije nego što možemo čitati informacije iz datoteka moramo ih otvoriti za čitanje funkcijom fopen:

Kod:<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'r'); ?>

PHP skripta kojom pišete mora biti u istom direktoriju kao i test.txt datoteka koju smo stvorili u prijašnjim lekcijama.

Sadržaj test.txt:

Tutorijal.net team

Sada možemo čitati iz te datoteke. Koristiti ćemo se funkcijom fread.Fread funkciji moramo dati upravljač datotekom i moramo joj reći koliko podataka u bytima treba pročitati.Jedan znak zauzima jedan byte.Primjer:

<?php$mojadatoteka = "File.txt";$ud = fopen($mojadatoteka, 'r');$podaci = fread($ud, 9);fclose($ud);echo $podaci; ?>

Prikaz:Tutorijal

Ako smo htjeli pročitati sve podatke iz datoteke, onda moramo imati točnu veličinu datoteke. Za to će nam trebati filesize funkcija.

Kod:<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'r');$podaci = fread($ud, filesize($mojadatoteka));fclose($ud);echo $podaci; ?>

Prikaz:Tutorijal.net team

Sada su svi podaci iz test.txt spremljeni u varijablu $podaci.

Page 18: Php Tutorijali

Također, možete čitati samo liniju podataka iz datoteke sa getsfunkcijom. Kod:

<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'r');$podaci = fgets($ud);fclose($ud);echo $podaci; ?>

Ovo funkcija vam možda zatreba ali nije česta. Također, naša datoteka nema više od 1 linije podataka tako da se niti nemože vidjeti stvarna namjena ove funkcije. Napišite za vježbu još par redaka u datoteku i probajte onda ovu funkciju.

Upravljanje datotekama PHP-om: brisanje datoteka 

Sada ćemo naučiti izbrisati datoteku. To se radi sa funkcijom unlink:Prvo, morate biti sigurni da datoteka koju želite brisati nije otvorena. Ako je zatvorite je sa fclose:

<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'w') or die("Datoteku nije moguce otvoriti");fclose($ud); ?>

Sada ako želimo izbrisati test.txt samo pokrenemo PHP skriptu koja se nalazi u istom direktoriju kao i datoteka. Funkcija unlink zahtjeva jedino ime datoteke za brisanje:

Kod:

<?php$mojadatoteka = "test.txt";unlink($mojadatoteka); ?>

Datoteka test.txt je sada izbrisana.

Upozorenje!Pazite kada želite brisati datoteke da izbrišete pravu datoteku da bi izbjegli probleme.

Upravljanje datotekama PHP-om: Nadodavanje u datoteku 

Do sada smo naučili pisati u datoteku na taj način da su svi prijašnji podaci iz datoteke bili izbrisani. Ako želimo nadopisati nešto u datoteku bez gubitka prijašnjih podataka onda moramo otvoriti datoteku u append modu (modu za nadodavanje).

Page 19: Php Tutorijali

Kod:<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'a');?>

Ako želimo sada pisati u datoteku počet ćemo pisati na kraju datoteke.Koristiti ćemo datoteku test.txt koju smo već stvorili prije.

Kod:<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'a') or die("Datoteku nije moguce otvoriti");$podaci = "Tralalala\n";fwrite($ud, $podaci);fclose($ud); ?>

Sadržaj datoteke test.txt bi sada trebao izgledati ovako:Tutorijal.net team Tralalala

Upravljanje datotekama PHP-om: Skraćivanje datoteke 

Već smo spomenuli da kada otvorite datoteku za pisanje sa parametrom W da se svi podaci izvrišu unutar te datoteke. Ovo se još naziva i skraćivanje datoteke.

Da izbrišemo sve podatke iz test.txt moramo otvoriti datoteku u normalnom načinu za pisanje. Svi podaci unutar datoteke će biti izgubljeni.Kod:

<?php$mojadatoteka = "test.txt";$ud = fopen($mojadatoteka, 'w');fclose($ud);?>

Zašto koristiti?

Ovo se najčešće koristi na datotekama koje sadrže podatke koji će se koristiti samo kratko vrijeme prije nego što će biti zamijenjeni. Ovakve datoteke se najčešće zovu „temporary files“ (privremene datoteke).

Upravljanje datotekama PHP-om: Upload 

U ovom tutorijalu ćemo naučiti kako pomoću PHP „uploadati“ datoteke na vaš server. Omogućavanje uploada na vaš server je rizičan posao jer ste s time omogućili da se „zarazite“ ili prenesete „zarazu“ gotovo svakog ikad napisanog crva/virusa.

Page 20: Php Tutorijali

Prvi korak je pravljenje HTML forme.Kod:

<form enctype="multipart/form-data" action="dizanje.php" method="POST">

<input type="hidden" name="MAX_velicina_datoteke" value="100000" />

Odaberite datoteku za upload: 

<input name="uploadedfile" type="file" /><br />

<input type="submit" value="Upload" /></form> 

Objašnjenja:

enctype="multipart/form-data" -važno za PHP datoteku koju ćemo stvoriti. action="dizanje.php" - ime PHP datoteke koju ćemo stvoriti method="POST" - ovime govorimo Internet pregledniku da ćemo poslati informacije na server koristeći POST.input type="hidden" name=" MAX_velicina_datoteke" - s ovime ograničavamo maksimalnu veličinu datoteke u bytovima. input name="uploadedfile" - uploadedfile je način na koji ćemo naći datoteku u našoj PHP skripti.

Spremite ovu formu u datoteku dizanje.html.

Sada ćemo napraviti PHP skriptu koja će upravljati uploadima. Na način da će ih primiti ili odbiti.

Dizanje.php

Kada je datoteka dizanje.php izvršena, uploadana datoteka postoji u privremenom prostoru na serveru, i ako je ne maknemo datoteka će biti uništena. Uploadanu datoteku ćemo prebaciti sa funkcijom $_FILES. funkcija $_FILES sprema sve informacije o datotekama. Ovoj funkciji moramo dati dva elementa:uploadedfile - uploadedfile sa ovim ćemo reći $_FILES s kojom ćemo se datotekom igrati.$_FILES['uploadedfile']['name'] - name sadrži originalni put do datoteke. $_FILES['uploadedfile']['tmp_name'] - tmp_name sadrži put do privremenih datoteka koje su na serveru.Kod:

// mjesto gdje ce datoteka biti spremljena $target_path = "uploadi/";

/* Dodaje originalno ime datoteci u put do datoteke "uploadi/imedatoteke.ekstenzija" */$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

// sa ovime ćemo doći do privremene datoteke.$_FILES['uploadedfile']['tmp_name']; 

Važno: morat ćete stvoriti direktorij u direktoriju gdje se dizanje.php nalazi i nazvati ga „uploadi“ jer ćemo tamo spremati sve datoteke.

Sve što sada moramo napraviti je pozvati move_uploaded_file funkciju i PHP će napraviti svoje. Ova funkcija mora znati sljedeće:-put do privremene datoteke-put do gdje će prebaciti privremenu datotekuKod:

$target_path = "uploadi/";

$target_path = $target_path . basename( 

Page 21: Php Tutorijali

$_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {echo "Datoteka ". basename( $_FILES['uploadedfile']['name']). " je uspijesno pohranjena";} else{echo "Datoteka se nije mogla pohraniti na server.";} 

VAŽNO!!!Ova skripta sadrži par linija koda i napravljena je samo za potreba učenja osnova upload funkcije te zbog toga ne preporučamo stavljati ju na web stranicu zato što nije sigurna.

Pražnjenje varijabli i upita 

Sve varijable se učitvaju u memoriju servera te je poželjno te varijable isprazniti kako bi bilo više prostora za druge naredbe i varijable. Iako to nije obavezno, pražnjenje varijabli i mysql upita pridonosi brzini izvođenja naredbi te oslobađanje memorije servera. Kad se memorija servera napuni, dolazi do "pada" servera što nije baš poželjno. Varijable i upiti se prazne poslje izvođenja ili korištenja, tj. na kraju stranice. Ako varijablu ili upit ispraznite prije izvođenja ona više nama učinka, tj. ne postoji pa dolazi do prekida ispisa ili gubitak podataka.

Pražnjenje varijabli: unset($varijabla)

<?php//prvi primjer$a = "ovo je nakakva txt varijabla";echo $a;unset($a);

//drugi primjer$a = "5";$b = "2";$c = "3";

$d=$a+$b+$c;unset($a, $b, $c, $d);?>

Pražnjenje upita: mysql_free_result($varijabla)

<?phpinclude("konekcija.php"); //konekcija na bazu$ime="Damir";$a = mysql_query("SELECT FROM tablica ORDER by ID ASC");while($redak = mysql_fetch_array($a)){ //ispis iz baze

echo "Bok $ime, ti se prezivaš $redak[prezime]";}mysql_free_result($a);unset($redak);unset($ime);?>

Pražnjenje upita: mysql_close($varijabla)

Page 22: Php Tutorijali

Ponekad je dobro i ugasiti vezu na bazu na kraju stranice jer iako se automatski veza gasi nakon završetka skripte, može se pojaviti greška pa se veza ne ugasi.

<?php

$a = mysql_connect(localhost, user, lozinka);mysql_select_db(baza);//neke naredbemysql_close($a);?>