12. php – 3.dio
DESCRIPTION
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) - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/1.jpg)
M. Zekić-Sušac 1
12. PHP – 3.dio
Funkcije date(), include(), rad s datotekama, mail
![Page 2: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/2.jpg)
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)
![Page 3: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/3.jpg)
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
![Page 4: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/4.jpg)
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
![Page 5: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/5.jpg)
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”)
![Page 6: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/6.jpg)
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
![Page 7: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/7.jpg)
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
![Page 8: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/8.jpg)
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>
![Page 9: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/9.jpg)
M. Zekić-Sušac 9
Načini otvaranja datotekaMod Opis
r Čitanje, od početka datoteke.
r+ Čitanje i pisanje, počinje od početka datoteke.
w Samo pisanje, prepisuje sadržaj datoteke ako postoji.
w+ Čitanje i pisanje, Read/Writeprepisuje sadržaj datoteke ako postoji.
a Dodavanje, otvara i piše na kraj datoteke, ili kreira novu ako ne postoji.
a+ Čitanje i dodavanje, dodaje novi sadržaj na kraj datoteke.
x Samo pisanje. Kreira novu datoteku. Vraća False i grešku ako već postoji.
x+ Čitanje i pisanje. Kreira novu datoteku. Vraća False i grešku ako već postoji.
![Page 10: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/10.jpg)
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
![Page 11: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/11.jpg)
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";
![Page 12: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/12.jpg)
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
![Page 13: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/13.jpg)
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);
?>
![Page 14: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/14.jpg)
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 datotekeString – naziv varijable čija se vrijednost upisuje u datotekuLength – 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).
![Page 15: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/15.jpg)
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
![Page 16: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/16.jpg)
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
![Page 17: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/17.jpg)
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 = "[email protected]"; $subject = "Test mail"; $message = "Hello! This is a simple email
message."; $from = "[email protected]"; $headers = "From: $from";mail($to,$subject,$message,$headers); echo "Mail Sent.";
?>
![Page 18: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/18.jpg)
M. Zekić-Sušac 18
Primjer slanja teksta mailom
Primjer 15:<html><body><?php
$to = “[email protected]"; $subject = "Test mail"; $message = “Zdravo. Ovo je probna poruka."; $from = “[email protected]"; $headers = "From: $from";mail($to,$subject,$message,$headers); echo “Poruka je poslana.";
?></body></html>
Za provjeru ovog primjera kliknite na: PHP_primjer15.php
![Page 19: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/19.jpg)
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>
![Page 20: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/20.jpg)
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(“[email protected]", "Subject: $subject", $message, "From: $email" ); echo “Hvala na Vašoj poruci!"; }
?></body></html>
![Page 21: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/21.jpg)
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
![Page 22: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/22.jpg)
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
![Page 23: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/23.jpg)
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:
![Page 24: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/24.jpg)
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”.
![Page 25: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/25.jpg)
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.}
![Page 26: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/26.jpg)
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(); } ?>
![Page 27: 12. PHP – 3.dio](https://reader035.vdocuments.mx/reader035/viewer/2022062314/568132ac550346895d995572/html5/thumbnails/27.jpg)
M. Zekić-Sušac 27
Literatura:
W3C, PHP Tutorial, http://www.w3schools.com/php/, 28.04.12.