24.5.2011 1 Sveučilište Josipa Sveučilište Josipa Jurja JurjaStrossmayera u Osijeku, Strossmayera u Osijeku, Odjel za matematiku, Odjel za matematiku, Trg Ljudevita Gaja 6 Trg Ljudevita Gaja 6 31000 Osijek 31000 Osijek PHP PHP 11. vježbe Web programiranje i primjene Web programiranje i primjene Slobodan Jelić Sveučilište Josipa Sveučilište Josipa Jurja JurjaStrossmayera u Osijeku, Strossmayera u Osijeku, Odjel za matematiku, Odjel za matematiku, Trg Ljudevita Gaja 6 Trg Ljudevita Gaja 6 31000 Osijek 31000 Osijek Rad sa znakovnim vrijednostima i Rad sa znakovnim vrijednostima i regularnim izrazima regularnim izrazima 1. Formatiranje znakovnih vrijednosti 2. Spajanje i razdvajanje znakovnih vrijednosti 3. Uspoređivanje znakovnih vrijednosti 4. Pronalaženje i zamjena znakovnih podnizova pomoću funkcija za rad sa znakovnim vrijednostima 5. Upotreba regularnih izraza Web programiranje i primjene Web programiranje i primjene Primjer aplikacije: Primjer aplikacije: Smart Smart Form Form Mail Mail • jednostavan obrazac za prikupljanje informacija od kupca jednostavan obrazac za prikupljanje informacija od kupca • dio prethodnog projekta “Bobovi auto dio prethodnog projekta “Bobovi auto-dijelovi” dijelovi” • prosljeđivanje e prosljeđivanje e-poruke određenom odjeljku Bobove firme poruke određenom odjeljku Bobove firme (na osnovu ključnih riječi) (na osnovu ključnih riječi) izvorni kod: feedback.html PHP skripta za obradu obrasca PHP skripta za obradu obrasca <? <?php php // //create create short short variable variable names names $name name=$_POST[' =$_POST['name name']; ']; $email email=$_POST[' =$_POST['email email']; ']; $feedback feedback=$_POST[' =$_POST['feedback feedback']; ']; //set //set up up some some static static information information $toaddress toaddress = " = "feedback [email protected]example.com"; "; $subject subject = " = "Feedback Feedback from from web site"; web site"; $mailcontent mailcontent = " = "Customer Customer name name: ".$ : ".$name name." ."\n". n". "Customer Customer email email: ".$ : ".$email email." ."\n". n". "Customer Customer comments comments:\n".$ n".$feedback. feedback."\n"; n"; $fromaddress fromaddress = " = "From From: : webserver [email protected]example.com"; "; // //invoke invoke mail() mail() function function to to send send mail mail mail($ mail($toaddress toaddress, $ , $subject subject, $ , $mailcontent mailcontent, $ , $fromaddress fromaddress); ); ?> ?> vrijednosti u poljima obrasca koje se dohvate pomoću niza _POST[’’] sadržaj e-poruke – konkatenacijastringova, vrijednosti iz obrasca funkcija za slanje mail-a: SINTAKSA: bool mail(string to, string subject, string message, string [additional_headers [, string additional_parameters]]); dodatna zaglavlja: $dodatna_zaglavlja="From: [email protected]\r\n" ."Reply-To: [email protected]"; SMTP poslužitelj SMTP poslužitelj • Simple imple Mail ail Transfer ransfer Protocol rotocol– poslužitelj za slanje poslužitelj za slanje elektroničke pošte elektroničke pošte – funkcija mail() u PHP funkcija mail() u PHP-u radit će samo ako ima instaliran SMTP u radit će samo ako ima instaliran SMTP poslužitelj na stroju poslužitelj na stroju localhost localhost. – koristimo koristimo Mercury Mercury u sklopu XAMPP platforme u sklopu XAMPP platforme Mercury Mercury • zatvoriti sve prozore zatvoriti sve prozore
6
Embed
Primjer aplikacije: Primjer aplikacije ......24.5.2011 6 •• regularni izrazi u PHPregularni izrazi u PHP--u se pišu između u se pišu između uvijekuvijekpolunavodnika polunavodnika
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
24.5.2011
1
Sveučilište Josipa Sveučilište Josipa JurjaJurja Strossmayera u Osijeku,Strossmayera u Osijeku,
Odjel za matematiku,Odjel za matematiku,
Trg Ljudevita Gaja 6Trg Ljudevita Gaja 6
31000 Osijek31000 Osijek
PHPPHP
11. vježbe
Web programiranje i primjeneWeb programiranje i primjene
Slobodan Jelić
Sveučilište Josipa Sveučilište Josipa JurjaJurja Strossmayera u Osijeku,Strossmayera u Osijeku,
Odjel za matematiku,Odjel za matematiku,
Trg Ljudevita Gaja 6Trg Ljudevita Gaja 6
31000 Osijek31000 Osijek
Rad sa znakovnim vrijednostima i Rad sa znakovnim vrijednostima i
regularnim izrazimaregularnim izrazima
1. Formatiranje znakovnih vrijednosti
2. Spajanje i razdvajanje znakovnih vrijednosti
3. Uspoređivanje znakovnih vrijednosti
4. Pronalaženje i zamjena znakovnih podnizova pomoću funkcija za rad sa znakovnim vrijednostima
5. Upotreba regularnih izraza
Web programiranje i primjeneWeb programiranje i primjene
Primjer aplikacije: Primjer aplikacije: SmartSmart FormForm MailMail
•• jednostavan obrazac za prikupljanje informacija od kupcajednostavan obrazac za prikupljanje informacija od kupca
•• dio prethodnog projekta “Bobovi autodio prethodnog projekta “Bobovi auto--dijelovi”dijelovi”
////invokeinvoke mail() mail() function function to to sendsend mailmailmail($mail($toaddresstoaddress, $, $subjectsubject, $, $mailcontent mailcontent, $, $fromaddressfromaddress););
?>?>
Formatiranje znakovnih vrijednostiFormatiranje znakovnih vrijednosti
•• znakovne vrijednosti koje šalju korisnici prije upotrebe znakovne vrijednosti koje šalju korisnici prije upotrebe
najčešće treba pročistitinajčešće treba pročistiti
•• imamo tri funkcije:imamo tri funkcije:
–– trimtrim() () –– briše bjeline s početka i kraja znakovnog podatkabriše bjeline s početka i kraja znakovnog podatka
–– ltrimltrim() () –– briše bjeline samo s početka znakovnog podatkabriše bjeline samo s početka znakovnog podatka
–– rtrimrtrim() () –– briše bjeline samo s kraja znakovnog podatkabriše bjeline samo s kraja znakovnog podatka
•• Zadatak 1: Koristeći funkciju Zadatak 1: Koristeći funkciju trimtrim() () očistite znakovne očistite znakovne
podatke u varijablama podatke u varijablama $$namename, , $$emailemail i i $$feedbackfeedback ..
Formatiranje znakovnih vrijednosti u oblik pogodan za Formatiranje znakovnih vrijednosti u oblik pogodan za
ispisivanjeispisivanje
•• HTML formatiranje: funkcija HTML formatiranje: funkcija nl2br()nl2br()–– prihvata znakovnu vrijednost kao ulazni parametar i sve znakove za prihvata znakovnu vrijednost kao ulazni parametar i sve znakove za
novi redak zamjenjuje odgovarajućim XHTML oznakama novi redak zamjenjuje odgovarajućim XHTML oznakama <br/><br/>
•• Zadatak 2: Nakon unosa podataka u obrazac ispišite sadržaj eZadatak 2: Nakon unosa podataka u obrazac ispišite sadržaj e--
mail poruke (mail poruke (tjtj. vrijednost varijable . vrijednost varijable $$mailcontentmailcontent ) u HTML ) u HTML
dokument koji se učita nakon izvršavanja skripte. Učinite to dokument koji se učita nakon izvršavanja skripte. Učinite to
korištenjem i bez korištenja funkcije korištenjem i bez korištenja funkcije nl2br()nl2br() ..
Formatiranje znakovnih vrijednosti u obliku pogodnom za Formatiranje znakovnih vrijednosti u obliku pogodnom za
štampanještampanje
•• koristimo dvije naredbe:koristimo dvije naredbe:
–– echoecho –– prikazivanje znakovnih vrijednosti u WEB preglednikuprikazivanje znakovnih vrijednosti u WEB pregledniku
–– printprint –– isto što i isto što i echoecho, ali vraća TRUE ili FALSE u ovisnosti o tome je li , ali vraća TRUE ili FALSE u ovisnosti o tome je li
operacija uspjela ili neoperacija uspjela ili ne
•• printfprintf() () –– prosljeđuje formatiranu znakovnu vrijednost WEB preglednikuprosljeđuje formatiranu znakovnu vrijednost WEB pregledniku
•• sprintfsprintf() () –– formatira znakovnu vrijednost i vraća je u obliku formatira znakovnu vrijednost i vraća je u obliku stringastringa
–– sintaksa:sintaksa:
•• stringstring sprintfsprintf ((stringstring format [, format [, mixedmixed args.. args...]).])
•• voidvoid printfprintf ((stringstring format [, format [, mixedmixed args.. args...]).])
–– Primjeri:Primjeri:
•• echo “Total amount of order is echo “Total amount of order is $total$total.”;.”;•• printfprintf (“Total amount of order is (“Total amount of order is %s%s.”, .”, $total$total ););•• printfprintf (“Total amount of order is (“Total amount of order is %.2f%.2f”, ”, $total$total ););•• printfprintf (“Total amount of order is (“Total amount of order is %.2f%.2f (with shipping (with shipping %.2f%.2f) “,) “, $total$total , , $$totaltotal__shippingshipping ););
–– printfprintf (“Total amount of order is (“Total amount of order is %%22\\$.2f$.2f (with (with shipping shipping %%11\\$.2f$.2f) “,) “, $total_$total_shippingshipping, $, $total total););
–– upotrebljava se prilikom ponavljanja argumenataupotrebljava se prilikom ponavljanja argumenata
–– upotrebljavaju se ponekad i sljedeće verzije funkcije upotrebljavaju se ponekad i sljedeće verzije funkcije prinprin tt::
•• vprintfvprintf() () –– drugi (i posljednji) argument je niz od vrijednosti koje se drugi (i posljednji) argument je niz od vrijednosti koje se
ispisujuispisuju
•• vsprintfvsprintf() () –– isto kao i isto kao i vprintfvprintf() () ali se rezultat ispisuje u ali se rezultat ispisuje u stringstring a a
ne u WEB preglednikne u WEB preglednik
Pretvaranje malih slova u velika i obrnutoPretvaranje malih slova u velika i obrnuto
24.5.2011
4
Formatiranje znakovnih vrijednosti u oblik pogodan za unos Formatiranje znakovnih vrijednosti u oblik pogodan za unos
u bazuu bazu
•• mogu postojati problemi prilikom unošenja sljedećih znakova:mogu postojati problemi prilikom unošenja sljedećih znakova:
–– navodnici (obični i navodnici (obični i polunavodnicipolunavodnici))
–– obrnuta kosa crta (obrnuta kosa crta (\\))
–– NULLNULL
•• MySQLMySQL ih može shvatiti kao upravljačke vrijednostiih može shvatiti kao upravljačke vrijednosti
–– ispred tih znakova treba dodati kosu crtuispred tih znakova treba dodati kosu crtu
•• stripslashesstripslashes()()–– uklanja dodatne kose crte. Koristi se ako je aktivirana direktiva uklanja dodatne kose crte. Koristi se ako je aktivirana direktiva
magicmagic__quotesquotes__gpcgpc
Spajanje i razdvajanje znakovnih vrijednostiSpajanje i razdvajanje znakovnih vrijednosti
•• explodeexplode()()–– sintaksa: sintaksa: arrayarray explodeexplode((stringstring grani čnik, grani čnik, stringstring tekst tekst
–– varijabla varijabla $$emailemail__arrayarray je niz dijelova rastavljenog teksta graničnikom je niz dijelova rastavljenog teksta graničnikom @@(u ovom slučaju korisničko ime i domena)(u ovom slučaju korisničko ime i domena)
•• Zadatak 3:Zadatak 3: Ako je ime domene u eAko je ime domene u e--mail adresi mail adresi bigcustomer.combigcustomer.com ee--mail poruku proslijedite korisniku mail poruku proslijedite korisniku bob@[email protected] , inače na adresu , inače na adresu feedbackfeedback@@example.comexample.com . Ime domene mora biti ispisano . Ime domene mora biti ispisano
malim slovima!malim slovima!
•• implodeimplode()() , , joinjoin()()–– imaju istu sintaksu kao imaju istu sintaksu kao i i explodeexplode()() , ali suprotan učinak, ali suprotan učinak
–– int int strcmpstrcmp((stringstring str1, str1, stringstring str2);str2);
–– ako su ako su str1str1 i i str2str2 jednaki vraća 0jednaki vraća 0
–– ako je po abecedi ako je po abecedi str1str1 iza (veći od)iza (veći od) str2str2 vraća broj vraća broj većiveći od 0od 0
–– ako je po abecedi ako je po abecedi str1str1 ispred (manji od) ispred (manji od) str2str2 vraća broj vraća broj manjimanji od 0od 0
–– pravi razliku izmeću velikih i malih slovapravi razliku izmeću velikih i malih slova
•• strnatcmpstrnatcmp()()–– ista sintaksa kao i ista sintaksa kao i strcmpstrcmp()()
–– uspoređuje nizove prema prirodnom poretkuuspoređuje nizove prema prirodnom poretku
–– više o prirodnom poretku na više o prirodnom poretku na http://www.naturalordersort.org/http://www.naturalordersort.org/
•• postoje verzije postoje verzije strcasecmpstrcasecmp() () i i strnatcasecmpstrnatcasecmp() () koje NE prave koje NE prave razliku između velikih i malih slovarazliku između velikih i malih slova
Dužina znakovne vrijednosti: funkcija Dužina znakovne vrijednosti: funkcija strlenstrlen()()
•• SintaksaSintaksa
–– int int strlenstrlen((stringstring str1);str1);
–– Primjer:Primjer:
ifif ((strlenstrlen($($emailemail) < 6){ ) < 6){
echo ‘That email address is not valid’;echo ‘That email address is not valid’;
exit; // force execution of PHP scriptexit; // force execution of PHP script
•• ako se ako se uzorakuzorak pojavljuje u nizu znakovnih vrijednosti pojavljuje u nizu znakovnih vrijednosti teksttekst onda onda
funkcija vraća dio vrijednosti parametra funkcija vraća dio vrijednosti parametra teksttekst od prvog pojavljivanja od prvog pojavljivanja
parametra parametra uzorakuzorak pa nadaljepa nadalje
•• inače, vraća inače, vraća FALSEFALSE
•• strchrstrchr() () –– isto kao i isto kao i strstrstrstr() () (razlika postoji u C(razlika postoji u C--u)u)
•• stristrstristr() () –– isto kao i isto kao i strstrstrstr() () ali pravi razliku između ali pravi razliku između
velikih i malih slovavelikih i malih slova
•• strrchrstrrchr() () –– vraća dio izvorne vrijednosti od posljednjeg vraća dio izvorne vrijednosti od posljednjeg
pojavljivanja uzorka pa nadaljepojavljivanja uzorka pa nadalje
Utvrđivanje položaja znakovnog Utvrđivanje položaja znakovnog podnizapodniza: funkcije : funkcije
strposstrpos()() i i strrposstrrpos()()
•• djeluje isto kao i djeluje isto kao i strstrstrstr() () ali vraća ali vraća pozicijupoziciju parametra parametra uzorakuzoraku parametru u parametru teksttekst
•• Sintaksa:Sintaksa:
–– int int strposstrpos((stringstring tekst, tekst, stringstring uzorak, int uzorak, int [pomak] );[pomak] );
–– rezultat funkcije je nova verzija parametrarezultat funkcije je nova verzija parametra tekst tekst u kojoj je svako u kojoj je svako pojavljivanje parametra pojavljivanje parametra uzorakuzorak zamijenjeno parametromzamijenjeno parametrom zamjenazamjena