1 / 27

12. PHP – 3.dio

12. PHP – 3.dio. Funkcije date(), include(), rad s datotekama, mail. Date() funkcija u PHP-u. Koristi se ako želimo ispisati ili obraditi podatke o sistemskom datumu i vremenu Sintaksa: date(format, timestamp) Format – specificira format u kojem će biti ispisan datum (obavezno navesti)

Download Presentation

12. PHP – 3.dio

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 12. PHP – 3.dio Funkcije date(), include(), rad s datotekama, mail M. Zekić-Sušac

  2. Date() funkcija u PHP-u • Koristi se ako želimo ispisati ili obraditi podatke o sistemskom datumu i vremenu • Sintaksa: date(format, timestamp) • Format – specificira format u kojem će biti ispisan datum (obavezno navesti) • Timestamp – specificira vremensku oznaku. Standardna oznaka je trenutni datum i vrijeme. Timestamp je broj sekundi od 1. siječnja 1970. u 00:00:00 GMT. (nije obavezno navesti) M. Zekić-Sušac

  3. Format datuma • U funkciji date() obavezno je navesti format vremena i datuma. U tu svrhu koriste se predefinirana slova, npr: • d – dan u mjesecu, brojčano (01-31) • m – tekući mjesec, brojčtano (01-12) • Y – tekuća godina, četveroznamenkasto • U format se mogu upisati i znakovi “/”, “.” i dr, npr: <?php echo date("Y/m/d"); echo "<br />"; echo date("Y.m.d"); echo "<br />"; echo date("Y-m-d"); ?> Rezultat ove skripte je prikaz: 2006/07/11 2006.07.11 2006-07-11 M. Zekić-Sušac

  4. Vremenska oznaka (timestamp) • Za vraćanje sistemskog vremena i datuma koristi se funkcija mktime() • Sintaksa: mktime(hour,minute,second,month,day,year,is_dst) • Npr. ako želimo ispisati sutrašnji datum: <?php $tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y")); echo "Sutra je “ . date("d/m/Y", $tomorrow); ?> Rezultat skripte: Sutra je 14/05/2008 M. Zekić-Sušac

  5. Funkcija include() • Ova funkcija omogućava umetanje sadržaja druge .php datoteke u trenutno aktivnu .php datoteku • Preporuča se koristiti ako postoje dijelovi web mjesta koji će se ponavljati na više web stranica, kao npr. zaglavlja, izbornici, i dr. • Takvi dijelovi se smještaju u posebne php datoteke i pozivaju iz osnovne datoteke, što omogućuje lakše ažuriranje, npr. ako želimo napraviti promjenu u izborniku, to treba učiniti samo u jednoj php datoteci u kojoj je izbornik. • Sintaksa: include(“naziv_datoteke”) M. Zekić-Sušac

  6. Primjer upotrebe include() • Primjer 11 - uključuje zaglavlje iz posebne datoteke: <html> <body> <?php include("header.php"); ?> <h1>Dobrošli na moju stranicu!</h1> <p>Neki tekst</p> </body> </html> • Sadržaj datoteke “header.php” može biti npr.: <h2><center>Odjel za matematiku</h2> <img src="logo_web.gif"> Za provjeru ovog primjera kliknite na: PHP_primjer11.php M. Zekić-Sušac

  7. Primjer upotrebe include() - nastavak • Ako pogledamo u pregledniku IE izvorni kod datoteke PHP_primjer11.php, dobivamo ovo: <html> <body> <h2><center>Odjel za matematiku</h2> <img src="odjel_matem.jpg"> <h1>Dobrošli na moju stranicu!</h1> <p>Neki tekst</p> </body> </html> • Ovdje je automatski umetnut sadržaj druge datoteke: header.php M. Zekić-Sušac

  8. Rukovanje datotekama • Za otvaranje datoteke koristi se funkcija fopen(). • Sintaksa: fopen(“naziv_datoteke”, “mod_otvaranja”) • The first parameter of this function contains the name of the file to be opened and the second parameter specifies in which mode the file should be opened: <html> <body> <?php $file=fopen("welcome.txt","r"); ?> </body> </html> M. Zekić-Sušac

  9. Načini otvaranja datoteka M. Zekić-Sušac

  10. Primjer otvaranja datoteke – fopen() • Primjer nastoji otvoriti datoteku, u slučaju da ne postoji, prikazuje poruku: <html> <body> <?php $file=fopen("welcome.txt","r") or exit(“Ne mogu otvoriti datoteku!"); ?> </body> </html> Za provjeru ovog primjera kliknite na: PHP_primjer12.php M. Zekić-Sušac

  11. Provjera da li je kraj datoteke – feof() • Za provjeru da li je dostignut kraj datoteke (eng. end of file - EOF) koristi se funkcija feof() • Korisna je ako treba učitavati podatke za koje ne znamo koliko ih ima, pa ih treba učitavati sve dok se ne dostigne kraj datoteke.Napomena: Nije moguće čitati datoteke otvorene u modu: w i x! • Primjer: if (feof($file)) echo "Kraj datoteke"; M. Zekić-Sušac

  12. Čitanje datoteke liniju po liniju – fgets() • Za čitanje iz datoteke liniju po liniju koristi se funkcija fgets() • Nakon poziva ove funkcije, pokazivač se automatski premješta na početak nove linije u datoteci. • Primjer - čita liniju po liniju sve do kraja datoteke: <?php $file = fopen("welcome.txt", "r") or exit("Unable to open file!"); //Prikaz linije sve do kraja datoteke while(!feof($file)) { echo fgets($file). "<br />"; } fclose($file); ?>Ako je npr. u datoteku welcome.txt upisano: Ovo je prva poruka. Ovo je druga poruka. Ovo je treća poruka. Za provjeru što će ispisati ovaj primjer kliknite na: PHP_primjer13.php • Otvaranje datoteke za čitanje • Ispis linije ako nije kraj datoteke M. Zekić-Sušac

  13. Čitanje datoteke znak po znak • Za čitanje podataka iz datoteke znak po znak, koristi se funkcija fgetc() • Nakon poziva ove funkcije, pokazivač se automatski premješta na početak nove linije u datoteci. • Primjer - čita znak po znak sve do kraja datoteke: <?php $file = fopen("welcome.txt", "r") or exit("Unable to open file!"); //Prikaz znakova sve do kraja datoteke while(!feof($file)) { echo fgets($file); } fclose($file); ?> M. Zekić-Sušac

  14. Pisanje u datoteku • Za pisanje u neku datoteku koristi se funkcija fwrite(). • Funkcija vraća broj byte-ova podataka koji je upisan. • Sintaksa: fwrite(file,string,length)File – naziv datoteke String – naziv varijable čija se vrijednost upisuje u datoteku Length – maksimalni broj byte-ova podataka koji će se upisati (nije obavezno navesti) Napomena: da bi se moglo pisati u datoteku, ona mora biti prethodno otvorena u odgovarajućem modu. S pomoću ove funkcije mogu se upisivati podaci u bilo kojem formatu (ascii, binarni i dr). M. Zekić-Sušac

  15. Primjer pisanja u datoteku • Primjer 14 – Pisanje teksta u datoteku “test.txt” <?php $file = fopen("test.txt","w"); echo fwrite($file,"Hello World. Testing!"); fclose($file); ?> Rezultat skripte će biti: 21 M. Zekić-Sušac

  16. Rukovanje mailom – mail() • Funkcija mail() koristi se za slanje el.pošte iz php skripte • Sintaksa: mail(to,subject,message,headers,parameters) • To – specificira kome (na čiju e-mail adresu) se šalje poruka, obavezno navesti • Subject – specificira naslov poruke, obavezno navesti i to u jednoj liniji koda • Message – definira tekst poruke, obavezno navesti, svaka linija se odvaja znakovima za line feed (\n). Linije ne smiju biti dulje od 70 znakova. • Headers – specificira dodatna zaglavlja, kao npr. From, Cc, and Bcc. Nije obavezno navesti. Ako se navode, treba ih odvojiti međusobno znakovima (\r\n) • Parameters – specificira dodatne parametre za slanje, nije obavezno navesti Napomena: da bi se mogla koristiti ova funkcija, mora biti podešeno korištenje programa za mail u php.ini datoteci na poslužitelju M. Zekić-Sušac

  17. Slanje teksta mailom • Za primjer slanja običnog teksta mailom, najprije su deklarirane varijable ($to, $subject, $message, $from, $headers), zatim su one korištene u funkciji mail() za slanje putem e-maila: <?php $to = "someone@example.com"; $subject = "Test mail"; $message = "Hello! This is a simple email message."; $from = "someonelse@example.com"; $headers = "From: $from"; mail($to,$subject,$message,$headers); echo "Mail Sent."; ?> M. Zekić-Sušac

  18. Primjer slanja teksta mailom • Primjer 15: <html><body> <?php $to = “mzekic@mathos.hr"; $subject = "Test mail"; $message = “Zdravo. Ovo je probna poruka."; $from = “mzekic@efos.hr"; $headers = "From: $from"; mail($to,$subject,$message,$headers); echo “Poruka je poslana."; ?> </body></html> Za provjeru ovog primjera kliknite na: PHP_primjer15.php M. Zekić-Sušac

  19. Slanje maila s pomoću obrasca (forme) • Ovaj primjer najprije prikazuje formu za unos podataka, zatim se na klik miša pozove druga php datoteka koja šalje podatke • Sadržaj datoteke PHP_primjer16.php <html> <body> <?php { echo "<form method='post' action=‘salji.php'> Email: <input name='email' type='text' /><br /> Subject: <input name='subject' type='text' /><br /> Message:<br /> <textarea name='message' rows='15' cols='40'> </textarea><br /> <input type='submit' value='Pošalji'/> </form>"; } ?> </body> </html> M. Zekić-Sušac

  20. Slanje maila s pomoću obrasca (forme) - nastavak • Sadržaj datoteke salji.php: <html><body> <?php if (isset($_REQUEST['email'])) //ako je ispunjeno polje "email“ poruka se šalje { $email = $_REQUEST['email'] ; $subject = $_REQUEST['subject'] ; $message = $_REQUEST['message'] ; mail(“mzekic@mathos.hr", "Subject: $subject", $message, "From: $email" ); echo “Hvala na Vašoj poruci!"; } ?> </body> </html> M. Zekić-Sušac

  21. Slanje sigurnog maila • Mail poslan u prethodnom primjeru nije siguran, već spam programi mogu u polja obrasca upisati npr. CC:, BCC: adrese više osoba i slati ih • Da bismo to spriječili, provjerava se polje upisano za email adresu, na način opisan na stranici: http://www.w3schools.com/php/php_secure_mail.asp M. Zekić-Sušac

  22. Rukovanje greškama u PHP-u • Rukovanje greškama ili eng. error handling važno je kako bi se korisnika obavijestilo o vrsti greške koja se pojavila, ali i za kontrolu daljnjeg nastavka rada programa • Program bez rukovanja grešaka izgleda neprofesionalno, a također je izložen i sigurnosnim rizicima • Najčešći načini rukovanja greškama u PHP-u su: • Jednostavne naredbe "die()" • Samostalno kreirane greške (eng. custom errors) i okidači grešaka (eng. error triggers) • Izvještavanje o greškama M. Zekić-Sušac

  23. Primjer upotrebe die() funkcije • Ako želimo otvoriti datoteku, upisali bismo naredbu npr.: <?php $file=fopen("welcome.txt","r"); ?> • Ukoliko datoteka ne postoji, pojavit će se pokruka o grešci, npr. ovako: Warning: fopen(welcome.txt) [function.fopen]: failed to open stream: No such file or directory in C:\webfolder\test.php on line 2 • Kako bi se izbjegle ovakve greške, može se u kodu provjeriti da li datoteka postoji i korisniku prikazati drugačija poruka: M. Zekić-Sušac

  24. Primjer upotrebe die() funkcije - nastavak <?php if(!file_exists("welcome.txt")) { die(“Datoteka ne postoji"); } else { $file=fopen("welcome.txt","r"); } ?> Ovakva provjera da li datoteka postoji ne ostavlja korisnika s grubom porukom i ne prekida izvođenje aplikacije. Prikazat će se poruka “Datoteka ne postoji”. M. Zekić-Sušac

  25. Rukovanje izuzecima • Rukovanje izuzecima (eng. exception handling) koristi se za provjeru unosa podataka od strane korisnika, te omogućava poruku o grešci korisniku i nastavak rada. • Rukovanje izuzecima mijenja normalan tijek programa ako se dogodio neki izuzetak (neka specifična greška ili događaj koji onemogućava daljnji nastavak programa), npr. ako korisnik unese tekst umjesto broja, i dr. • Za rukovanje izuzecima koriste se ključne riječi: Sintaksa: try { Ovdje naredbe kod kojih će se automatski provjeravati da li se dogodio izuzetak } catch { Ovdje naredbe koje rukuju izuzetkom: ispisivanje poruke ili dr. } M. Zekić-Sušac

  26. Primjer rukovanja izuzecima <?php //funkcija koja provjerava da li je vrijednost manja od 1 function checkNum($number) { if($number>1) { throw new Exception("Value must be 1 or below"); } return true; } try { checkNum(2); / } catch(Exception $e) { echo 'Message: ' .$e->getMessage(); } ?> M. Zekić-Sušac

  27. Literatura: • W3C, PHP Tutorial, http://www.w3schools.com/php/, 28.04.12. M. Zekić-Sušac

More Related