Vajad kellegagi rääkida?
Küsi julgelt abi LasteAbi
Logi sisse

PHP ALUSED RAAMAT (0)

1 Hindamata
Punktid

Esitatud küsimused

  • Kui materjal on juba olemas siis miks uuesti?
  • Kellele on kursus mõeldud?
  • Mis on veebiserver?
  • Mis ülesannet täidab veebiserver?
  • Milline on kõige populaarsem veebiserveri tarkvara ?
  • Mis on PHP ja miks see on nii populaarne?
  • Milline on php süntaks?
  • Mis on WAMP ning milleks see hea on?
  • Mis vahe on aadressidel httplocalhost ja http127001 ?
  • Mis saab siis kui on vaja tekstis kuvada jutumärke javõi ülekoma?
  • Kumba siis kasutada?
  • Mis saab siis kui kasutaja nime ei suudeta tuvastada ehk seda ei olegi?
  • Kui soovin mõnda muud kuupäeva?
  • Mida nad siis teevad?
  • Kuidas seda saaks veel kontrollida Nimelt võiks ju tekitada lehed leht1php leht2php jne Miks?

01 - PHP - Sissejuhatus
Antud moodul on järgmine samm veebitehnoloogia õppimisel pärast HTML5 ja CSS3 õppimist. Siin õpime kuidas puuta koduleht PHP ja MySQL abil dünaamiliseks. Antud kursuse puhul olen aluseks võtnud vanema php kursuse, mis pärineb aastast 2009 ning oli toetatud e-ope.ee poolt. Et vanemast materjalist mingi jälg maha jääks , lisasin selle PDF dokumenti.
Kui materjal on juba olemas, siis miks uuesti? Selle aja jooksul on tekkinud parem arusaam, kui hästi õpilased materjali omandavad ning milline võiks olla parem struktuur. Lisaks sellele tahan iga materjaliga anda kaasa kenasti esitluse ning luua videoõpetused.
Kellele on kursus mõeldud?
Kursuse loomisel olen eelkõige silmas pidanud oma õpilasi, kellele tuleb see kõik kenasti selgeks teha. Kuid loodan, et sellest on ka teistele kasu, kellega ma kokku otseselt ei puutu . Kursus on ülesehitatud selliselt , et üheskoos tehakse läbi harjutused ning ülesanded jäävad iseseisvaks lahendamiseks.
Vajalikud eelteadmised
PHP mooduli kirjutamisel olen eeldanud, et õppur on enesele juba selgeks teinud nii HTML5 kui ka CSS3 osa. Kui kasutaja on õppinud kunagi mingisugust teist programmeerimiskeelt, siis teeb see ainult head ja kiirendab asjadest arusaamist .
 
Käsitletavad teemad
Alustame ülevaatest, mis on dünaamiline koduleht ning mis rolli mängib siin PHP. Seejärel kuulub suurem osa ajast just PHP'le, kus alustame muutujatest ja massiividest ja seome selle kõik andmebaasiga MySql. Hetkel on plaanis siduda tugevamalt ka OOP lähenemine , aga vaatame kuidas läheb. Peamine eesmärk on luua dünaamiline koduleht, mis on hallatav läbi administraatori liidese.
Kasulikud lingid
Panen siia kirja mõningad eesti keelsed veebilehed , kust võib veel abi saada:

Mis edasi?
Varu aega ja kannatust ning soovitan ära teha kõik harjutused. Jõudu tööle!
02 - PHP - Mis on PHP?
Teemad

Mis on veebiserver?
Oma veebilehe kuvamiseks on sul vaja veebileht üles laadida  veebiserverisse. Veebiserver on lihtsalt arvutitarkvara, mille ülesandeks on edastada sinna salvestatud HTML-dokumente, kasutades selleks HTTP edastusprotokolli. See tähendab, et kasutaja sisestab HTML dokumenti aadressi, näiteks metshein .com/test.html. Faili olemasolul saadetakse see kasutajale ning veebilehitseja loob sellest "vaadatava" veebilehe. Juhul kui oled kodulehele lisanud kujundusfaili, pilte või javascripti, siis lisatakse see kõik kaasa. Hetkel kõige suurema osa veebiserveri tarkvarast on endale haaranud tasuta  Apache HTTP Server  (61,4%), millele saab kõige lähemale  Microsoft IIS (14,6%). 
Seda nö. tavalist veebilehte, mille sisu ei muutu, nimetatakse staatiliseks veebileheks. Kindlasti on sellel oma koht, selles keerulises maailmas, kuid tavaliselt sellega asi ei piirdu. Näiteks oleks vaja lisada jooksvalt uudiseid, lubada kommentaare, hallata kasutajaid, saata emaile jne. Selle jaoks tuleb serverisse paigaldada lisatarkvara, mis selle eest vastutab, näiteks:

Näiteks sisestades veebiaadressi, kus nõuame serverilt test.php faili, siis veebiserver tuvastab faililõpu järgi php faili ning suunab selle php-mootorile. See teeb omad järeldused koodist ja suhtleb vajadusel andmebaasiga. Lõpptulemusena luuakse serveri ja veebilehitseja jaoks juba tuttav HTML kood. Hetkest, mil HTML kood genereeritakse reaalajas, nimetatakse dünaamiliseks veebileheks.
Dünaamilist veebilehe kood ja päringud andmebaasi jäävad kasutaja jaoks alati nähtamatuks.
Mis on PHP?
Lähtudes dünaamilise veebilehe kirjeldusest, saame PHP'd nimetada serveripoolseks skriptimiskeeleks. See tähendab, et koodi käivitamiseks on alati vaja PHP toega serverit. Serverit on võimalik teatud tasu eest rentida või ise ülesehitada. Seda viimast teeme ka meie ja juba järgmises peatükis.
PHP kirjeldamisel kasutatakse ka tihti mõistet veebiprogrammeerimine, mis ei ole sugugi nii vale, sest keel on ise mõjutatud teistest keeltest nagu C, Perl, Java, C++, Tcl jne. Seega sobib antud keel ka programmeermisaluste õpetamiseks.
PHP sündimise lugu
Php loojaks on taanlane Rasmus Lerdorf, kes tegi 1994.a enda jaoks Perl skriptide kogumiku , mida hakkas nimetama Personal HomePage tools . Ta tegi selle kõigile kättesaadavaks. 1997.a. kirjutati kood peaaegu täielikult ümber ning otsustati nimetada PHP järglaseks ning sellele anti versiooninumber PHP3. Lisaks uuele tuumale anti ka sellele uus nimi - Hypertext Preprocessor.
Ikka jälle ja jälle koodi parandades on hetkel väljas versioon  PHP5 ning see jookseb   Zend Engine 2.0 tuumal.
PHP süntaks ja kommentaarid
PHP koodi kirjutamisel on oluline, et see jääks  siltide vahele ning iga lause lõppeb semikooloniga!.
Koodi võib lisada nii HTML koodi sisse, kui ka eraldi skriptina. NB! Koodi käivitamiseks peab faili lõpp olema *.php!
PHP plussid ja miinused
  • Lihtne - lihtne õppida ja juba õpingute alguses saad panna kodoi "midagi" tegema. Samal ajal peetakse seda ka negatiivseks, sest igaüks saab kirjutada koodi ja nö rämpsskripte võib leida kõikjalt
  • Kommuun  - seda kasutavad kõik ja abi on google otsingusõna kaugusel
  • Arenev - ikka aegajalt avastatakse, et midagi on puudu või valesti ning asja püütakse parandada
  • Platvormist sõltumatu - kuna kood genereerib lõpptulemusena HTML'i, siis ei puutu see kokku kasutaja seadete või programmidega
  • Suurepärane suhtlusoskus vabavaralise andmebaasiga MySql
  • OOP tugi, mis lubab suurendada funktsionaalsust ja arendada modulaarsust

Redaktorid
PHP koodi saab kirjutada täiesti tavalise Notepad'iga, kuid tunduvalt mugavam on kirjutada seda programmidega, mis kuvab koodi värvilisena, lubab salvestada koodijupikesi, käivitada php koodi jne.
  • Notepad++
  • Sublime Text 2
  • Adobe Dreamweaver CS6 (30 päeva tasuta)

Kordamine
  • Mis ülesannet täidab veebiserver?
  • Milline on kõige populaarsem veebiserveri tarkvara ?
  • Põhiline erinevus staatilisel ja dünaamilisel kodulehel?
  • Mis on PHP ja miks see on nii populaarne ?
  • Milline on php süntaks?

 
03 - PHP - Ettevalmistused koodiga töötamiseks
Teemad
  • Mis on WAMP
  • WAMP serveri allalaadimine
  • WAMP serveri paigaldus
  • WAMP serveri käivitamine
  • PHP käivitamine WAMP serveris
  • Alternatiivid WAMP'ile
  • Adobe Dreamweaver seadistamine

Sissejuhatus
PHP koodi kompileerimiseks oleks vaja PHP mootori toega veebiserverit ning veebilehe lõplikuks ülesehitamiseks ka kindlasti mingisugust andmebaasi. Üks võimalus on "ehitada" veebiserver oma arvutisse , kasutades selleks WAMP serverit.
Mis on WAMP?
WAMP serveri puhul on tegemist veebiserveri tarkvarapaketiga, mis paigaldab väikese vaevaga sinu Windows arvutisse korraga nii veebiserveri Apache, andmebaasi MySQL ja meie soovitud Php mootori. Jah, me saame selle kõik paigaldada oma tavalisse laua- või sülearvutisse ning see käitub tavalise veebiserverina. Eeliseks oma arvutisse paigaldamisel on üleslaadimise, testimise ja muutmise kiirus. Linux fännid võiks proovida LAMP serverit.
Allalaadimine
WampServeri leiad aadressilt  http://www.wampserver.com/en/ . Seejärel kliki nupul Download ja leia oma süsteemile vastav versioon. Mina teen valiku WAMPSERVER (64 BITS & PHP 5.3) 2.2E.
Klikkides oma valikul antakse kolm hoiatust, kus esimest korda WampServeri paigaldamisel on kõige tähtsam paigaldada arvutisse  Visual C++ 2010 SP1.
Kuna minu arvutis on need kenasti tehtud, klikin tekstile you can download it directly. Selle peale alustatakse faili allalaadimist SourceForge kodulehelt. Pärast faili allalaadimist saad WampServeri kenasti arvutisse paigaldada.
Paigaldamine
Paigaldamiseks leia üles allalaetud WAMPSERVER fail ning tee sellel topeltklikk.
Paigalduse alguses võidakse hoiatada tundmatu tootja eest, aga surume hirmud alla ja käivitame soovitud faili.
Avanenud aknas tervitatakse kasutajat ja näidatakse paigaldatav tarkvara. Kuna me oleme endiselt kindlad, et seda tahame, siis vajuta  Next. Järgmises aknas kuvatakse hästi oluline leping, millega peame nõus olema, kui tahame seda tarkvara kasutada  - I accept the agreement>Next
Paigaldamine soovitatavasse c:\wamp  kataloogi ja vajutame Next. Uues aknas saame lisada valikud , kui soovime käivitusikooni töölauale või kiirpääsuribale. Vajuta Next.
Pärast vaevarikast Next nupule vajutamist antakse lõpuks võimalus tarkvara arvutisse paigaldada. Vajuta Install ja kannata kuni tarkvara on sinu arvutis.
Paigaldamise käigus küsitakse sul vaikimisi veebilehitsejat, kui Internet Explorer sobib, siis vajuta lihtsalt  Open .
Edasi päritakse ka sinu emaili kohta, mis jäta nii nagu on ja tulemüüri reageerimisel luba serveril kasutada internetti.
Edukast paigaldamisest annab märku aken, kus on võimalik pärast Finish vajutamist server koheselt käivitada - Launch WampServer 2 now. Aga mina eemaldan valiku ja käivitan serveri Start-menüüst.
WampServer käivitamine ja haldamine
Serveri käivitamiseks leia üles selle käivitamise ikoon ja lihtsalt kliki sellel. 
Programmi edukal käivitumisel kuvatakse ekraani alumises parempoolses nurgas roheline ikoon.
 Mitteedukal käivitamisel on see punane või kollane, põhjuseks siis mõne teenuse mittetöötamine.
Mittetöötamise võivad põhjustada näiteks arvutis töötav Skype või mõni teine veebiserver. Ette on tulnud ka juhtumeid, kus Apache teenus ei käivitu korralikult. Selleks tee all nurgas olevale ikoonile hiire vasaku klahviga  klikk ning see avab serveri menüü .
Liigume valikusse Apache> Service >Install Service 
See avab meile konsooli akna, kus palutakse vajutada  Enter ei paigaldada teenus.
Pärast ebaõnnestunud käiku, kliki uuesti ikoonil ing vali 
Testimine
Testimiseks avame veebikataloogi C:\wamp\www või klikime serveri ikoonil ja valime www directory.
See avab kataloogi, kuhu midagi lisades näeme seda nö. veebilehel. Vaikimisi on seal index.php. Oma testlehe tegemiseks teen faili test.php ja kirjutan sisse tervituse.
?
1
Salvesta :)
Faili testimiseks kirjutan veebilehe aadressiks localhost või 127.0.0.1. Ning kuna viidatud kohas on kenasti olemas fail index.php siis kuvatakse selle sisu. Localhost aadressi saab avada kiiresti, kui klikkida serveri ikoonil.
Oma testfaili nägemiseks lisan faili lõppu failinime.
Ehk siis kõige lihtsam viis ongi teha kataloogis vastavas failis muudatused ning veebilehitsejas vajutada Refresh (F5).
Alternatiivid
Lisan siia mõningad alternatiivid WAMP'ile.

PHP seadistamine programmis Adobe Dreamweaver CS6
Adobe Dreamweaver CS6 on suurepärane vahend PHP koodi kirjutamiseks ja testimiseks. Nimelt lubab Dreamweaver seadistada kodulehe projekt nii, et saate PHP koodi testida otse programmis. Kuna nii mõnigi kasutab seda, siis panen selle ka kirja.
Uue projekti loomiseks vali menüüst Site>New Site.
Avanenud aknas anna on projektile nimi ning vali selle asukoht, mis peab asuma veebiserveri juurkataloogis. Kui nimes võid kasutada täpitähti ja tühikuid, siis kataloogi puhul palun seda vältida. 
Seejärel vali küljemneüüst Server ning kliki +-märki 'Add new server'
Selle kohapeal tuleb seadistada server:
  • Server Name: serveri nimi
  • Connect using: Local /Network
  • Server Folder: sama kataloog , kus hoiad oma php-faile
  • Web URL: veebilehe aadress

Serveri täiendavad seaded leiad nupu alt  Advanced . Siin eemalda valik  Maintain synchronization information ja vali serveri tüübiks PHP MySQL.
Serveri seadistuse lõpetamiseks vajuta nuppu Save. Nüüd eemalda valik Remote juures ja lisa valik  Testing  järgi.
Lõpetamiseks vajuta Save. See tähendab, et ma saan programmis luua faile otse veebiserverisse ning lülitades sisse  LIVE , kuvatakse php vastus.
Kordamine

04 - PHP - Muutujad (Ülesanne 1)
Teemad
  • Kommentaarid
  • Muutujate loomine ja väärtuste omistamine
  • Muutujate väljastamine
  • Muutujate sidumine tekstiga ja omavahel
  • Andmetüübid

Kommentaarid
Enne kui me alustame igasuguse koodi kirjutamist, siis on hea tava, et koodi olulisemad sõlmed kommenteeritakse. See on kasulik nii endale kui teistele, kes peavad sinu koodi kunagi muutma hakata. Mitme rea kommenteerimiseks lisame teksti /* ja */ märgendite vahele.
?
1
2
3
4
5
6
7
Reeglina kasutatakse seda näiteks koodi algusesse info lisamiseks või hiljem koodiosade peitmiseks. Näiteks lisame koodi algusesse harjutuse kirjelduse:
?
1
2
3
4
5
6
7
8
Kommentaari märgendite vahele lisatud sisu veebilehe külastaja ei näe!
Üherealise kommentaari lisamiseks kasuta // või #, kuigi viimast kasutatakse vähem. Ning kasuta seda just koodiplokkide tähistamiseks, sest iga rea kommenteerimine nõuab liiga palju resurssi .
?
1
2
3
Muutujate loomine
Muutujad on nimelised mälupesad, millele on omistatud mingi väärtus. Põhimõtteliselt võiks seda kirjeldada kui konteinerit, mille sisuks võib olla näiteks tekst või number. Ja kuna tegemist on muutujaga, siis selle sisu võib alati muutuda. Meie võimuses on määrata ise muutujale nimi ja määrata, mis on selle sisuks - oluline on et muutuja algaks dollariga ($).
Näiteks: mul on vaja hoida mälus eesnimesid. Selleks pean välja mõtlema muutujale nime, millel võiks olla mingi tähendus. Valin selleksks $enimi. Nüüd omistan (=) sellele tekstilise väärtuse näiteks "Karin". PHP's tuleb see kirja panna nii: $enimi="Karin".
NB! Kõik tekstid lisatakse jutumärkide vahele! Kasutusel on nii ühekordsed (' ') kui ka kahekordsed (" ") jutumärgid . Mis on nende vahe, vaatame kohe allpool.
Muutuja nime andmine
Panen keelud ja lubadused loendina, sest nii peaks asjad paremini meelde jääma :
  • Iga muutujal peaks olema tähendus (see annab võimaluse hiljem koodist paremini aru saada)
  • Nime andmisel kasuta tähestikkus A-Z, võimalusel ära kasuta täpitähti Ä. Õ, Ü ja Ö
  • Kasutada võid nii suuri kui väikesi tähti, kuid muutujad on tõstutundlikud
  • Kasutada võid numbreid 0-9, kuid ära kunagi nendega alusta
  • tühikud on keelatud, kasuta nende asemel allkriipsu (_)
  • sümbolid ja erimärgid on keelatud

Igas programmeerimiskeeles on keele poolt reserveeritud muutujad, mida kasutaja ei saa enam luua. Php omad leiad siit.
Muutujale väärtuse omistamine
Muutujaid PHP's on kaheksa erinevat tüüpi, aga vaatame neist praegu kolme:
  • tekstid (strings) - tekstilised väärtused, mis lisatakse jutumärkide vahele
  • täisarvud(integers) - tavalised arvud, nii positiivsed kui negatiivsed
  • murdarvud ( double ) - komaga arvud, kusjuures koma tähistatakse punktiga
?
1
2
3
4
5
6
7
 Pane tähele, et arve ei lisata jutumärkide vahele!
Muutujate väljastamine
Muutuja väärtuste kuvamiseks kasutame PHP funktsiooni  echo .
?
1
2
3
4
5
6
7
8
9
10
11
12
 Koodi käivitamisel kuvatakse kõik väärtused ühel real
Muutujate liitmine
PHP lubab liita omavahel nii muutujaid kui teisi tekstiosi. Näiteks võiks ees- ja perenime ühendada ühte muutujasse. Selleks tuleb luua uus muutuja ning olemasolevad saame ühendada puntki (.) abil. 
?
1
2
3
4
5
6
7
8
Kahjuks endiselt sulatatakse veebilehel kõik kokku. Selle parandamiseks saame lisada muutujale erinevaid tekstiosi, nagu näiteks tühiku.
?
1
2
3
4
5
6
7
8
9
10
11
12
Sama tehnikat saame kasutada muutujate väljastamisel.
?
1
echo 'Tere '.$nimi;
Soovides lisada HTML koodi, siis tuleb ka see lisada jutumärkide vahele. Lisame näiteks reavahetuse
. Hetke kogu kood võiks välja näha selline:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Tekstiväärtused
Tahan nüüd juhtida tähelepanu jutumärkide erinevusse: ühe- või kahekordsed! Reegel võiks siinkohal olla selline, et kasuta läbi projekti ainult ühte tüüpi jutumärke ja äärmisel vajadusel kasuta samaaegselt teisi. Erinevus on muutuja väärtuste väljastamisel. Nimelt eespool nägime, et ühekordsete jutumärkide puhul pidime muutujad ja teksti siduma omavahel punktiga. Topeltjutumärkide puhul võite aga kirjutada muutujad otse muutuja sisse.
?
1
2
3
4
5
//kahekordsed jutumärgid
echo "$nimi on $vanus aastane
 
//ühekordsed jutumärgid
echo $nimi.' on '.$vanus.' aastane
Testides on topeltjutumärkide kasutamine ka natukene kiirem (www.phpbench.com). Topeltjutumärkidega saame muutujat jätkata muu teksiga - näiteks käänata. Ning selleks tuleb kasutada loogelisi sulge muutuja nimes.
?
1
2
//muutuja käänamine
    echo "${enimi}il on kiire auto!
Aga mis saab siis kui on vaja tekstis kuvada jutumärke ja/või ülekoma? Sel juhul kasuta väljaspool teisi märke . Näiteks soovid tekstis kuvada kahekordseid jutumärke, siis väljapoole lisa ühekordsed ja vastupidi.
?
1
2
3
//jutumärkide kuvamine
    echo '"Welcome to Estonia"
    echo " Shakespeare 'i teosed
Probleem peaks tekkima siis kui väljastatavas lauses on mõlemad märgid, näiteks "It's My Life" - Dr. Alban . Sellisel juhul tuleb kasutada kasutada langjoont (\) sama jutumärgi ees, mis on väljaspool.
?
1
echo "\"It's My Life\" - Dr. Alban
Kui ma oleks kasutanud väljaspool ühekordseid jutumärke, siis oleks pidanud langjoone panema ülakoma ette. Kasuta sama tehnikat, kui on vaja kuvada langjoont ennast.
 Ülesanne 1
  • Iga ülesanne hakkab kommentaariga, kus on kirjas ülesande number, sinu nimi ja kuupäev
  • Programm väljastab kolme muutuja (nimi, vanus, sugu) väärtused ühe koodireaga. Kusjuures kõik on väljastades eraldi real. Vastus täislausega.
  • Väljasta järgnev lause: "It's Alright, Ma (I'm Only Bleeding)" - Bob Dylan
  • "Joonista" järgmised pildid

05 - PHP - Matemaatilised tehted (Ülesanne 2)
Teemad

Aritmeetilised tehted
PHP saab hakkama ka kenasti lihtsate matemaatiliste tehetega nagu on seda liitmine, lahutamine, jagamine, korrutamine ja jäägiga.
Liita võib omavahel nii arve kui ka muutujate arvulisi väärtusi.
?
1
2
3
4
5
6
7
8
9
//aritmeetilised operaatorid
$x = 8;
$y = 2;
$ liitm = $x + $y;
$ lahut = $x - $y;
$ korru = $x * $y;
$jagam = $x / $y;
$jaak = $x % $y;
echo "Vastused: $liitm, $lahut, $korru, $jagam, $jaak";
Aritmeetiliste operaatorite hulka loetakse operaatoreid, mis suurendavad või vähendavad arvu ühe võrra.
Reeglina kasutatakse antud võimalust mõnes tsüklis , aga hetkel võtame lihtsalt ühe muutuja väärtuse ja suurendama ühe võrra.
?
1
2
3
4
//suurendamine ühe võrra
$x = 10;
$x++; //sama mis $x = $x + 1
echo $x;
Omistamise operaatorid
Selle pealkirja all tahan tutvustada nö. omistamise operaatoreid, mille eesmärk on ennekõike lühendada koodi kirjutamist.
?
1
2
3
4
//omistamise operaatorid
$x = 8;
$y = 2;
echo $x *= $y;
Sama asja saab kasutada ka tekstiosade liitmiseks.
?
1
2
3
4
$nimi = 'Mari';
$pnimi = 'Kisakõri';
$nimi .= $pnimi;
echo $nimi;
Arvude ja teksti vormindamine
Siiani oleme lauseid väljastanud funktsiooni echo abil. Leidub ka teisi võimalusi, millest igaühel on oma ülesanne.  Üks nendest on printf, mis lisaks väljastamisele vormindab selle. Selleks tuleb lausesse märkida protsendimärgi (%) abil koht kuhu väärtust soovid ning seejärel väärtus. Järgmises näites on kohahoidjaks %s, mis vormindab väärtuse tekstina.
?
1
2
3
//muutuja väärtuste vormindamine
$nimi = 'Mari';
printf('Tere %s', $nimi);
Soovid lausese teisigi väärtusi? Pole probleem, lisa julgelt kohahoidjaid ning lisa soovitud väärtused.
?
1
2
3
4
//muutuja väärtuste vormindamine
$nimi = 'Mari';
$vanus = 27;
printf('%s on %s aastane.', $nimi, $vanus);
 Hetkel vormindati vanus tekstina! Kena oleks vist ikkagi see arvuna esitada, mille jaoks kasutame%d.
?
1
2
3
4
//muutuja väärtuste vormindamine
$nimi = 'Mari';
$vanus = 27;
printf('%s on %d aastane.', $nimi, $vanus);
Järgmises tabelis toon välja ka teised vormindamise võimalused.
Hetkel lasime funktsioonil kasutada vaikimisi vormindust, näiteks komaarvu teisendab see kuus komakohta. Õnneks laseb PHP meil määrata, mitu komakohta me ikkagi soovime. Näiteks %0.3fabil, kuvatakse kolm komakohta.
?
1
2
3
4
$i = 7.26;
$j = 2.369;
$k = $i / $j;
printf('Vastus: %0.3f', $k);
Väljundi erinevad vormindamise võimalused leiad www.php.net/ manual /en/ function .sprintf.php aadressilt.
Enne kui selle peatüki lukku paneme, siis üks asi huvitab meid veel! Nimelt oleks meil soov panne vormindatud lause muutujasse ja seda suvalisel hetkel välja kutsuda. Kui hetkel panna see lause muutujasse, siis muutujasse lisatud väärtus kuvatakse igaljuhul ning väljakutsutud muutuja kuvab tähemärkide arvu. Vormindatud lause saab muutujasse lisada sprintf funktsiooni abil.
?
1
2
3
4
5
$i = 7.26;
$j = 2.369;
$k = $i / $j;
$vormindatud = sprintf('Vastuse: %0.3f', $k);
echo $vormindatud;
Ülesanne 2
  • Iga ülesanne hakkab kommentaariga, kus on kirjas ülesande number, sinu nimi ja kuupäev
  • Loo kaks täisarvulist muutujat, mis omavahel liidetakse, lahutatakse, korrutatakse, jagatakse ja leitakse jääk . Kusjuures vastuse kuvamisel näidatakse ka tehet ja kuvatakse eraldi ridadel. 
  • Koosta kood, mis teisendab Celsius- kraadid  Fahrenheiti. Kasuta valemit: F=(9/5)*C+32. Vastus vormindatakse 2 kohta pärast koma..
  • Arvuta ringi raadiuse järgi ringi ümbermõõt ja pindala. Vastused täislausega.

 
06 - PHP - HTML vormist info töötlemine (Ülesanne 3)
Teemad
  • Vormi loomine
  • GET ja POST erinevus
  • Andmete töötlemine

Sissejuhatus
Hetkel kirjutasime koodi, kus lasime koodil väljastada meie poolt muutujasse lisatud andmeid. Nüüd oleks aeg vaadata, kuidas saada kätte andmeid suvaliselt kasutajalt . Selleks peab sul olema mõningane ettekujutus  HTML vormide loomisest. Sest just vormi kaudu saab kasutaja meile öelda kes ta on, mida ta tahab jne. Seega meie peamiseks ülesandeks on kuidagi töödelda kasutaja poolt vormi sisestatud andmeid. Valida on kahe meetodi GET ja POST vahel.
Vormi loomine
Enne kui otsustame kumb meetod on parem, loome kolme väljaga vormi ning lisame ühe nupu. Dokumendi faililaiend võib jääda .html, sest sellesse dokumenti me php koodi ei lisa.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
06 - PHP - Vormid
    

Pood


    
        Toode 1
        Toode 2
        Toode 3
        
    
Antud kood ei ole lõplik. Olemas on küll kolm tekstikasti, kuid programm ei suuda neid eristada. Selleks tuleb anda neile nimed. (Koodi kuvamisel jätan edaspidi html dokumendi osa, kuigi see on kindlasti olemas)
?
1
2
3
4
5
6
    Toode 1
    Toode 2
    Toode 3
    
Nüüd suudab kood mõista, kuhu kasti mingi väärtus lisati. Aga vajutades nupule saada, ei toimu mitte midagi! Selleks tuleb vormile öelda kuhu tuleb andmed saata ja mis meetodil. Seega  action atribuudile lisa faili nimi, kuhu hakkame kirjutama php koodi ning meetodiks kirjutan juba "get".
?
1
2
3
4
5
6
    Toode 1
    Toode 2
    Toode 3
    
Nüüd kui veebilehel vajutada nupule 'Saada', siis saan veateate, kuna ei ole teinud faili ' tellimine .php'. Teen selle ära ning lisan sinna lihtsalt ühe pealkirja.
?
1

Tellimine


Nüüd kui vajutada nuppu 'Saada', näen teise dokumendi sisu.
GET vs POST
Kirjutasime koodis juba  method ="post", kuid üks võimalus on veel kasutada method="get". Põhimõtteliselt teevad need ühte ja sama - saadavad andmed serverisse. Suurim erinevus, mis määrab ka selle kumba valida, on saadetavate andmete kuvamise viis. GET meetodi puhul kuvatakse saadetavad andmed veebilehe aadressiribal ning saame kenasti näha millised väärtused millistele muutujatele on lisatud.
POST meetodi puhul jäetakse aadressiriba puutumatuks, kuigi andmed saadetakse samamoodi serveri poole teele.
Kui avada veebilehitseja arendaja tööriistad , siis on kenasti saadetavad andmed näha. Chrome veebilehitsejas vali selleks Seaded>Tööriistad>Arendaja tööriistad.
Kumba siis kasutada?
GET
  • Nagu meetod ise ütleb, kasutame seda eelkõige info hankimiseks - näiteks andmebaasist tulemuste väljastamine (otsing)
  • Kuna aadressiribal on andmeid näha, siis ära kasuta seda paroolide või mõne muu tundliku info saatmiseks
  • Kasutaja saab aadressiribal olevaid parameetreid muuta ja salvestada veebilehitseja lemmikutesse
  • Aadressiribal on märkide arv piiratud
  • Talub lehe uuendamist

POST
  • Kasutame meetodit andmete saatmiseks - näiteks artiklite saatmiseks andmebaasi
  • Saadetavaid andmed ei kuvata veebilehe aadressiribal, seega sobib paroolide või mõne tundlikuma info saatmiseks
  • Saadetavad andmete hulk ei ole praktiliselt piiratud
  • Lehe värskendamisel küsitakse kinnitust

Seega hetkel ei ole midagi kriitilist ning kasutame harjutustes GET meetodit.
Vormist saadud andmete töötlemine
 Laseme failil tellimine.php vormist saadud andmeid töödelda, alustades kõigepealt edastatud andmete kuvamisega. Kasutame selleks eeldefineeritud muutujat $_GET[], kuhu lisame vormi tekstivälja nime.
?
1
2
3
4
5
6
 Nüüd kui kasutaja on sisestanud esimesse kasti mingi väärtuse, siis kuvatakse see tellimine.php lehele.
Hetkel saab lisada nii numbreid kui tekste , kuid ärme selle pärast veel muretse . Täiendame koodi, et saada ka teiste väljade väärtused.
?
1
2
3
4
5
6
7
8
9
10
 Nüüd kus me saame vormist kenasti andmed kätte, saame kenasti teostada seniõpitud teadmisi.
Ülesanne 3
  • Nagu ikka alusta kommentaaridest
  • Küsi kasutajalt vajalikud parameetrid ning leia:
    • kera ruumala,
    • koonuse ruumala
    • ja silindri ruumala
  • Pii puhul võid kasutada väärtust 3.14
  • Väljasta andmed täislausega
  • Väljakontroll pole hetkel oluline ja eeldame, et kasutaja kasutaja mõistab mida talt ootame :)

07 - PHP - Tingimuslaused (Ülesanne 4)
Teemad
  • IF
  • IF... ELSE
  • IF...ELSE IF...ELSE
  • Võrdlusoperaatorid
  • Loogikaoperaatorid
  • IF...ELSE kompaktkuju
  • SWITCH

Sissejuhatus
Ühel hetkel peame tegema koodis otsuseid, mis sõltuvad kasutaja valikust. Näiteks kas kasutaja on sisestanud piisavalt suure väärtuse või hoopis liiga väikese. Või kas kasutaja on ikka kõik väljad täitnud ja millise veateate peaksime väljastama . Ja siinkohal tulebki appi tingimuslaused, millest kõige tuntum peaks olema IF. Kui see selge, vaatame mis siis saab kui on valikuid rohkem kui üks, kaks, kolm jne. See teema nõuab tähelepanu ning arusaamist, seepärast jõudu ja jaksu!
IF
Kõige lihtsam nendest on if võrdlus. Kui tingimus on tõene, siis tehakse midagi, kui mitte liigutakse lihtsalt edasi.
Näiteks kontrollime, kas muutujale on mingi väärtus lisatud.
 
?
1
2
3
4
5
6
 
Või teeks hoopis vastupidi - väljastame teate kui muutujale ei ole lisatud väärtust. Selleks kasutame eitust, mis tähistatakse hüüumärgiga (!).
 
?
1
2
3
4
5
6
7
 
IF...ELSE
Juhul kui soovid käivitada koodi ka väära tulemuse korral, tuleb kasutada if...else koodi. Kui lause on tõene, käivitatakse lause 1, kui väär, siis lause 2.
Siinkohal täiendame tingimust mõne võrdlusega, kasutades selleks matemaatikast tuntud võrdlusoperaatoreid.
 
Loome näiteks koodi, mis otsustab, kas muutuja on paaris või paaritu. Selleks teeme jäägiga jagamist ning kui jääk on null, siis on tegemist paarisarvuga. Vastasel korral paarituga.
 
?
1
2
3
4
5
6
7
8
9
10
 
Loogikaoperaatorid
Kui soovime loogikale anda mitu tingimust, kasutame selleks loogikaoperaatoreid. Pean silmas seda, et lause väljastamiseks peab olema täidetud vähemalt üks või mitu tingimust. 
Nagu tabelist näha, siis and ja && on täpselt samad operaatorid, nagu ka or ja ||. Näiteks kontrollime, kas muutuja väärtus jääb 50 ja 100 vahele.
 
?
1
2
3
4
5
6
7
8
 
IF...IF ELSE...ELSE
Kui väärtus ei vasta tingimusele, siis on if...if else...else  tingimuslause abil võimalik seda uuesti ja uuesti kontrollida. 
Näiteks on meil vaja hinnata vastavalt saadud punktidele. Kui punktisumma on vähemalt 9, väljastatakse aluse "Väga hea". Kui ei vasta etteantud tingimusele, seame uue tingimuse jne.  Kui kui lõpuks ei vasta väärtus mitte ühelegi tingimusele väljastame vastava lause.
 
?
1
2
3
4
5
6
7
8
9
10
11
12
13
 
IF...ELSE kompaktkuju
Kes otsivad abi internetist võivad sattuda peale tingimuslausele, mille süntaks näeb välja järgmine:
?
1
tingimus ? TÕENE tegevus : VÄÄR tegevus
Näiteks kontrollime, kas kasutaja on admin või külaline .
 
?
1
2
3
4
 
Sama süntaksi abil saame lisada veel tingimusi, kuid siis on soovitav kasutada sulgusid. Lisame näiteks moderaatori kontrolli.
 
?
1
2
3
4
 
SWITCH
Juhul kui if lauseid hakkab tekkima rohkem, tasuks mõelda switch tingimuslausele. See kontrollib etteantud avaldist ja väljastab lause kui leiab vaste. Kui vastet ei leita antakse vaikimisi lause.
Näiteks kontrollime samamoodi kasutajaid nagu enne - kas on tegemist adminiga, modega või külalisega.
 
?
1
2
3
4
5
6
7
8
9
10
 
 Sama asja peaks saama ka võrdlus- ja loogikaoperaatoritega 
?
1
2
3
4
5
6
7
8
9
10
11
12
 
Ülesanne 4
  • Kõik ülesanded on varustatud kommentaaridega
  • Jagamine - sisestatakse 2 täisarvulist muutujat. Jaga üks arv teisega . Väljasta ka hoiatav lause, kui kasutaja üritab jagada nulliga. Lisa kontroll, mis ei käivita koodi tühjade lahtrite puhul (N: if(!empty($_GET['name'])){lause}, see käivitab koodi siis, kui lahtrisse on midagi lisatud)
  • Suurem/väiksem (if... elseif ) - sisestatakse 2 täisarvulist muutujat. Leia kumb arv on suurem või on need võrdsed. Lisa kontroll, mis ei käivita koodi tühjade lahtrite puhul.
  • Juubel  - kasutaja lisab sünniaasta ning kood väljastab, kas tegemist on juubeliaastaga. Lisa kontroll, mis ei käivita koodi tühjade lahtrite puhul.
  • Arvamismäng (switch) - kasutaja üritab ära arvata arvu. Et tal oleks lihtsam arvata, siis anna vihje, kas lisatud arv on liiga suur või väike. Ära arvamise puhul kiida!
  • Sõjaväekohustus  - leia kas kasutaja on sõjaväeteenituse jaoks kõlbulik. Selleks peab olema täidetud järgmised tingimused: eestlane, 18+ ja vähemalt 9kl haridus
    08 - PHP - Massiivid (Ülesanne 5)
    Teemad
    • mis on massiiv
    • massiivi loomine
    • assotatiivne
    • print_r
    • massiivi funktsioonid

    Sissejuhatus
    Siiani oleme lisanud igale muutujale ainult ühe väärtuse. Näiteks $nimi='Mari'. Nüüd kui oleks vaja veel nimesid muutujates hoida, siis peaksime tegema juurde muutujaid. Näiteks $nimi2,$nimi3 jne. Mis siis kui neid muutujaid oleks vaja sada ja rohkem? Siinkohal tulebki meile appi programmeerimise üks olulisemaid andmestruktuure massiivid. Vaatame selles peatükis, mis see on, kuidas massiivi väärtusi väljastada, lisada juurde ning kas on olemas mugavad funktsioonid paremaks tulemuseks.
    Mis on massiiv ( array )
    Massiiv on muutuja, mis hoiab endas hulka samatüüblisi väärtusi. Väärtusteks võivad olla nii tekstid, arvud kui ka teine massiiv. Viisakas on massiivile anda nimi mitmuses . Loome näiteks nimede massiivi ja vanuste massiivi.
    ?
    1
    2
    $nimed = array('mari', 'kati', 'juhan', ' miku ', 'uku');
    $vanused = array(15, 23, 32, 28, 18);
    Masiivi sisu kuvamiseks on kasutada täpne funktsioon var_dump() või vähemtäpneprint_r(). Vaatame näiteks var_dump() funktsiooni ning me näeme, et see  kuvab meile massiivi elementide koguarvu , nende tüübid ja pikkused.
    ?
    1
    2
    3
    4
    5
    6
    Samas print_r() puhul kuvatakse põhimõtteliselt ainult oluline sisu.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Kindlasti paned tähele, et massiivis olevad väärtused indekseeritakse alates nullist! See tähendab, et loendamine algab alati nullist. Näiteks, kui ma soovin saada massiivist esimest väärtust. Selleks tuleb kasutada massiivi nime ning seejärel kandiliste sulgude vahele lisada soovitud indeks.
    ?
    1
    2
    3
    4
    Antud koodi väljastab meile teksti Mari. Ja näiteks Uku saamiseks tuleb meil lisada indeksiks 4.
    Massiivi kõikide väärtuste kuvamine
    Kood ülevalpool, kuvaks loendist ainult ühe väärtuse. Selleks, et kätte saada kõik väärtused, tuleks kasutada mõnda tsüklit. Tsüklite töötamist ja võimalusi vaatame  küll järgmises peatükis, aga siin sellega tutvumine ei tee ka paha. Kasutame siinkohal  foreach () tsüklit, mis võtab iga väärtuse, lisab selle muutujasse ja väljastab.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    Hetkel peaks kõik viis nime ülalt alla jooksma .
    Assotsiatiivsed massiivid
    Assotsiatiivsete massiivide puhul saame väärtuste võtmed ise määrata. Nin see tuleb nii kirja panna sarnase mudeli järgi, nagu me massiivi väljastamisel näeme: võti=>väärtus.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
     See tähendab, et kui ma soovin näiteks võtme ' kehv ' väärtust, siis kirjutan nii:
    ?
    1
    echo $hinded['kehv']; //tulemus: 2
    Tsüklisse panduna tuleb nii võtmele, kui ka väärtusele anda oma muutuja.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Töötamine massiivi funktsioonidega
    Massiividega töötamiseks on terve ports erinevaid funktsioone, mille leiad manualist  http://php.net/manual/en/ref.array.php . Loomulikult ei pea kõiki kohe pähe õppima, vaid ikka vastavalt vajadusele. Vaatame mõningaid , mida on tulnud endal kõige sagedamini ette.
    Massiivi täiendamine
    Aegajalt on vaja väärtusi massiivi juurde lisada. Selleks on kaks meetodit. Näiteks võime kasutada array_push() funktsiooni. Lisada saab nii ühe kui mitu nime korraga.
    ?
    1
    2
    3
    4
    5
    6
    Nagu näha, lisatakse uued väärtused massiivi lõppu. Teine võimalus on omistada uued väärtused
    ?
    1
    2
    3
    4
    5
    Sellise võttega saad lisada ainult ühe väärtuse korraga. Kuid selle võttega saad määrata näiteks väärtuse indeksi. Juhul kui see on juba olemas, siis kirjutatakse olemasolev üle.
    ?
    1
    $nimed[13] = 'ahmed';
    Väärtuse lisamiseks massiivi algusesse, kasutatakse funktsiooni array_unshift().
    ?
    1
    2
    3
    4
    5
    6
    Massiivist eemaldamine
    Massiivist viimase väärtuse eemaldamiseks kasuta array_pop() funktsiooni
    ?
    1
    array_pop($nimed);
    ning esimese väärtuse eemaldamiseks array_shift() funktsiooni.
    ?
    1
    array_shift($nimed);
    Kasutajat võiks informeerida kirje eemaldamisest, lisades eemdaldatava väärtuse näiteks massiivi.
    ?
    1
    2
    3
    4
    5
    Massiivi väärtuse loendamine
    Et teada saada mitut väärtust massiivis hoitakse, kasuta  count () funktsiooni.
    ?
    1
    echo count($nimed);
    Massiiivi väärtuse sorteerimine
    Vaatame sorteerimiseks järgmisi funktsioone:
    • sort()
    • rsort()
    • ksort()
    • krsort()
    • asort()
    • arsort()

    Funktsioon sort() sorteerib kasvavalt ja rsort() kahanevalt.
    ?
    1
    2
    3
    4
    5
    6
    Kasuta antud funktsioone ainult sel juhul, kui pole oluline, et nende võtmed lähevad sassi või assotsiatiivsete massiivide puhul asendatakse need indeksitega. Üldjuhul peetakse seda riskantseks ning sel juhul võetaksegi kasutusele hoopis ksort(), kus massiiiv sorteeritakse võtme järgi...
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ... ning asort(), kus massiiv sorteeritakse väärtuse järgi.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Lisades kummagile funktsioonile 'r'-tähe, muudetakse sorteerimine vastupidiseks: krsort() võiarsort(). Nüüd kui soovid just nimekirja sassi ajada, siis kasuta shuffle() funktsiooni. Selle tulemusena on iga kord erinev tulemus.
    ?
    1
    2
    shuffle($nimed);
    var_dump($nimed);
    Mitmemõõtmelised massiivid
    Mitmemõõtmeliseks loetakse massiivi, kui selle väärtusteks on uued massiivid.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Massiivist elementide saamiseks tuleb anda mõlemad võtmed. Kuvame näiteks Eesti pealinna:
    ?
    1
    echo $riigid['Eesti']['pealinn'];
     Kõikide andmete kuvamiseks kasutame foreach() tsüklit kaks korda.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Ülesanne 5
     
    • Õppeained - koosta vähemalt 5 õppeaine nimetusega massiiv. Sinu ülesandeks on see php funktsiooni sort() abil sorteerida kasvavas järjekorras ning kuvada ridade kaupa.
    • Pallivise  - sul on üks massiiv nimedega ja teine palliviske tulemustega.

    ?
    1
    2
    $nimed = array('Martin','Hardi','Juhan','Tiina','Sirje','Kaie');
    $pallivisked = array(33, 32, 27, 11, 15, 28);
    Ülesande lahendamiseks tuleb sul natuke googeldada, leia:
    * osalejate arv (count)
    * keskmine palliviske tulemus (array_sum jt.)
    * parim tulemus (max)
    * parima tulemuse visanud õpilase nimi (array_keys)
    • Tekita mitmemõõtmeline massiiv raamatu andmete hoidmiseks. Loo massiiv vähemalt kolmele raamatule - pealkiri, autor, žanr , ilmumisaasta. Ülesandeks on kuvada kõik raamatud tähestikulises järjekorras ning kui palju on raamatuid kokku. Kasuta täislauseid, näiteks:

    ?
    1
    2
    3
    4
    5
    Pealkiri: Helmelõimed elulõngal
    Autor: Karl Puhvel
    Žanr: biograafia
    Aasta: 2013
    Raamatuid kokku: 3 tk
    • NB! Kõik ülesanded on kommenteeritud!

    09 - PHP - Tsüklid (Ülesanne 6)
    Teemad
    • for
    • while
    • do...while
    • tsükkel tsüklis
    • tingimuslause tsükli sees

    Sissejuhatus
    Eelmises peatükis puutusime kokku foreach() tsükliga, mis võttis massiivist väärtused ja kuvas kõik ükshaaval. Tegemist on korduva tegevusega , mida tegi kood meie eest. Selles peatükis vaatamegi, millised on meie võimalused koodimise mugavamaks tegemisel. Seejärel vaatame kas ja kuidas saame kirjutada ühe tsükli teise sisse ning mis siis saab, kui tahame kasutada tingimuslauset.
    For tsükkel
    Tegemist on kindla kordustearvuga tsükliga. Näiteks ütleme, et kood peab väljastama lauset kümme korda. Sellisel juhul tuleb sulgudesse lisada:
    • muutuja väärtus, millest soovime alustada
    • tingimus, mille korral lõpetatakse tsükli töö
    • avaldis, mis suurendab muutuja väärtust
    ?
    1
    2
    3
    4
    5
     Kui see skeemina kuvada, siis tuleb välja midagi sellist:
    Eelmises massiivide peatükis kasutasime foreach()tsüklit. Kuna kõik tsüklid teevad sama asja, siis peaks ka for() tsükliga massiivist andmed kätte saama. Ja saabki ning kontrolli tuleb lisada massiivi pikkus, kasutades count() funktsiooni.
    ?
    1
    2
    3
    4
    5
    6
    While tsükkel
    Vaatame tükli loomise funktsioone veelgi. While() tsükli puhul on tegemist on eelkontrolli tsükliga, mis täidab käsku, kuni etteantud tingimus vastab tõele. Töötab väga sarnaselt eelmisele!
    ?
    1
    2
    3
    4
    5
    6
    7
    Kui see skeemina kuvada, siis tuleb välja midagi sellist:
    Do...while tsükkel
    Do...while on aga järelkontrolliga tsükkel. Selle tsükli puhul väljastatakse lause enne ja siis kontrollitakse tingimust. Ja antud teeb hetkel täpselt sama mida eelmised.
    ?
    1
    2
    3
    4
    5
    6
    7
    Kui see skeemina kuvada, siis tuleb välja midagi sellist:
    Tsükkel tsüklis
    Vaatame, mis saab, kui kasutada ühte tsüklit teise sees. Alustame sellest, et prindime 5 rida tärne (*), kus igas reas on hetkel vaid üks.
    ?
    1
    2
    3
    for($rida=1; $rida
    Funktsiooni nime valimisel lähtu samadest kriteeriumitest , mis muutujate nime valimisel - ära vali täpitähti, ära kasuta tühikuid ega muid sümboleid. NB! funktsioonid on ka tõstutundlikud. Kui koodijupp käivitada, siis midagi ei juhtu, kuigi koodis on kirjas, et see tagastaks lisatud teksti. Seda sellepärast, et funktsiooni pole keegi välja kutsunud. Teeme siis seda...
    ?
    1
    2
    3
    4
    5
    6
    7
    Nüüd on tulemuseks soovitud tekst.
    Funktsiooni parameetrid
    Tegelikult võiks kasutajaid tervitada nende eesnime pidi. Selleks saab funktsiooni sulgudesse lisada soovitud parameetrid. Lisame näiteks nime muutuja. Funktsiooni väljakutsumisel lisame funktsiooni kasutaja nime, keda funktsioon tervitab.
    ?
    1
    2
    3
    4
    5
    6
    7
    Hetkel väljastatakse kenasti lause Tere Karin. Aga mis saab siis, kui kasutaja nime ei suudeta tuvastada, ehk seda ei olegi? Sellisel juhul võiks parameetrina anda vaikimisi väärtuse$nimi="Kylaline". 
    ?
    1
    2
    3
    4
    5
    6
    7
    Kui kasutaja nime pole antud, siis tuleb tekst Tere Kylaline.
    Funktsioonidele võib anda kenasti ka rohkem parameetreid ja kindlasti välja kutsuda mitmeid kordi, mis ongi ju asja mõte.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Funktsioonide grupid
    Nagu eelpool mainitud , on PHP's üle 2500 funktsiooni. Kõike me kindlasti läbi ei võta ja ei jõuakski. Meie jaoks asja lihtsustamiseks ja paremaks mõistmiseks, võiksime need jagada mingisugustesse gruppidesse :
    • matemaatilised funktsioonid
    • kuupäevafunktsioonid
    • kontrollfunktsioonid
    • massiivifunktsioonid
    • tekstifunktsioonid
    • regulaaravaldised

    Kõik võimalikud funktsioonid leiad  http://www.php.net/manual/en/refs.basic.php.php  aadressilt. Tegelikult oleme me lähtuvalt vajadusest juba kasutanud erinevaid funktsioone. Näiteks echo(), fprint(), var_dump(), print_r() jne. 
    Matemaatilised funktsioonid
    Alustame matemaatiliste funktsioonidega, mille dokumentatsiooni leiad siit. Funkstioone on kokku ligi 50 ning vaatame neist olulisemaid.
     
    Kõige väiksem ja suurem
    Kõige väiksema või suurima arvu leiad vastavalt min() või max() funktsioonide abil.
    ?
    1
    2
    echo min(11,21,32,43,54);   //väljund 11
    echo max(11,21,32,43,54); //väljund 54
    Etteantud arvud meenutaks nagu massiivi? Õigus! Seega saame sama funktsiooni abil leida ka suurima või väiksema arvu massiivist.
    ?
    1
    2
    3
    $arvud = array(11,21,32,43,54);
         
    echo max($arvud);       //väljund 54
    Kui on vajadus leida näiteks suurim arv kõikidest massiividest, siis tuleb need leida eraldi.
    ?
    1
    2
    3
    4
    $arvud = array(11,21,32,43,54);
    $arvud2 = array(60,72,42,34,45);
         
    echo max(max($arvud), max($arvud2));        //väljund 72
     
    Ümardamine
    Arvude ümardamiseks kasuta  round (), ceil() või floor() funktsioone. Vaatame esimesena round()funktsiooni. Sellele funktsioonile tuleb anda parameetrina arv ja ümardusalus ehk mitu komakohta soovid. Kui ümardusalust pole, siis ümardatakse täisarvuni.
    ?
    1
    2
    3
    4
    $arv = 3.456;
         
    echo round($arv);       //3
    echo round($arv,2);     //3.46
     
    Ceil() ja floor() funktsioonidega saad ümardada vastavalt ülespoole ("lagi") või allapoole ("põrand") täisarvuni.
    ?
    1
    2
    3
    4
    $arv = 3.456;
         
    echo ceil($arv);        //4
    echo floor($arv);       //3
     
    Juhuslik arv
    Juhusliku arvu genereerimiseks on meil kasutada  rand () funktsioon.
    ?
    1
    echo rand();    //10156
    Selliselt loodud juhuslik arv on piiratud ning Windows arvutite puhul on see 32767. Kel vaja, siis selle barjääri saab ületada mt_rand() funktsiooniga.
    ?
    1
    echo mt_rand();     //883168196
    Juhusliku arvu ulatuse piiramiseks sisesta sulgudesse miinimum ja maksimum arvud.
    ?
    1
    echo rand(1,10);    //2
     
    Astendamine , ruutjuur ja pii
    Astendamiseks kasutame funktsiooni pow(), selleks tuleb anda sellele arv ja astendaja .
    ?
    1
    2
    echo pow(5,2);  //25
    echo pow(5,3);  //125
    Ruutjuure leidmiseks kasuta  sqrt () funktsiooni.
    ?
    1
    echo sqrt(9);   //3
    Kirjutades funktsiooni pi() genereeritakse meile selle väärtus 3,14 
    ?
    1
    echo pi();  //3.1415926535898
     
    Trigonomeetria
    Matemaatiliste funktsioonide hulka on lisatud ka trigonomeetriast tuntud sin()cos() ja tan().
    ?
    1
    echo cos(0.8);      //0.69670670934717
    Ning nurkade teisendamiseks radiaanideks kasuta deg2rad() ja vastupidi teisendamiseks rad2deg()funktsioone.
    ?
    1
    echo deg2rad(30);   //0.5235987755983
     
    Ülesanne 7
    • Jagamine - koosta funktsioon, mis teostab kasutaja antud arvudega jagamistehte. Lisa kontroll juhuks, kui kasutaja üritab jagada nulliga
    • Täringumäng  - loo funktsioon, mis genereerib pärast nupulevajutust suvalise täisarvu 1-6
    • Kolmnurk - oletame, et meil on kolmnurga küljed a=5 ja b=3, leia kolmnurga puuduoleva külje pikkus c=? (Pythagoras). Ümarda täisarvuni!

     
     
    11 - PHP - Ajafunktsioonid (Ülesanne 8)
    Teemad
    • time()
    • date ()
    • mktime()
    • strtotime()
    • date_default_timezone_set()
    • aja ja kuupäeva formaadid
    • pika kuupäeva eestistamine
    • tehted kuupäevadega
    • kuupäeva valideerimine

    Sissejuhatus
    Selles peatükis vaatame kuidas luua soovitud kuupäeva ning kuvada seda arusaadavas versioonis. Seejärel õpime kuidas teostada kuupäevaga erinevaid operatsioone, nagu kuupäevadega opereerimine ja võrdlemine.
    Aja loomine
    Aja loomisel kasutab PHP kokkulepitud UNIX stiilis ajatemplit (timestamp). Tegemist on sekunditega, mida loetakse alates 01.01.1970 ning selle väljakutsumiseks kasutatakse time()funktsiooni.
    ?
    1
    echo time(); //1361551056
    Kasutajasõbraliku kuupäeva kuvamine
    Kui vajutada hetkel veebilehitsejas Refresh, siis aeg muutub pidevalt. Selle kuupäevaga on probleem selles, et inimene ei saa aru, millise kuupäevaga on siis tegemist. Siinkohal tuleb mängu date()funktsioon, mis vajab kahte argumenti: kuupäevavorming ja ajatemplit.
    ?
    1
    echo date('d.m.Y G:i' , time());    //22.02.2013 16:02
    Eelpool lisatud kuupäevavorming sisaldab järgmisi vormindamise sümboleid:
    • d - kuupäev 01-31
    • m - kuu numbrina 01-12
    • Y - neljakohaline aastaarv n: 2013
    • G - 24-tunnine tunniformaat 0-23
    • i -   minutid 0-59

    See, mis märkide vahele lisad on sinu valida. Antud kuupäevavormingu sümbolid on ära toodud aadressil:  http://php.net/manual/en/function.date.php . Selle funktsiooniga on veel tore see, et kui ajatemplit mitte lisada, siis võtab see vaikimisi hetkekuupäeva ja kellaaja.
    ?
    1
    echo date('d.m.Y G:i');
    Ajavöönd
    Kui ma nüüd võrdlen serverist saadetud kellaaega oma arvuti kellaajaga, siis on see kaks tundi maas . Selle parandamiseks on võimalus koodi lisada soovitud ajavöönd.
    ?
    1
    date_default_timezone_set(' Europe /Tallinn');    //22.02.2013 18:02
    Teised ajavööndid leiad siit:  http://www.php.net/manual/en/timezones.europe.php
    Pika kuupäeva eestistamine
    PHP koodi loomisel ei ole vist piisavalt meie emakeelega arvestatud :) ja sellepärast näiteks pika kuupäeva väljakutsumisel kuvatakse kuu nimetus võõrkeelsena.
    ?
    1
    echo date('d.F.Y'); //22. February .2013
    Selle parandamiseks peame looma eraldi massiivi, kus eestikeelse kuud algavad indeksiga 1. Pärast seda tegin päeva, kuu ja aasta jaoks eraldi muutujad, kusjuures kuu nimetuse saamiseks kasutan kuupäeva vormingut 'n'. 'n' vormindab kuud 1-12, mis aitab massiivist leida üles õige kuu. Lõpuks väljastan kuu soovitud formaadis
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Muu soovitud kuupäeva genereerimine
    Hetkel lasime PHP'l genereerida hetkekuupäeva, tundus päris lihtne? Aga mis saab siis kui soovin mõnda muud kuupäeva? Sellisel juhul tuleb kasutada mktime() funktsiooni.
    ?
    1
    mktime(tunnid, minutid, sekundid, kuu, päev, aasta, suveaeg)
    Antud funktsioon loob ajatempli ikka sekundites, seega tuleb see vormindada vastavalt. Soovime näiteks kuvada interneti sünnipäeva 29.10.1969.
    ?
    1
    2
    $sp = mktime(0,0,0,10,29,1969);
    echo date('d.m.Y', $sp);    //29.10.1969
    Funktsioonis oli selline tore parameeter nagu 'suveaeg'. Lisades 1, lülitad suveaja sisse ja 0 välja. Kui sa seda ei lisa, siis jätad selle PHP'le otsustada.
    Tehted kuupäevadega
    Üks võimalus ajaga arvutamiseks on time() ajatemplile lisada või eemaldada vastav arv sekundeid. Näiteks time()+60 puhul lisatakse juurde 60sek ehk 1min jne. Loodan, et põhikooli matemaatika tuleb meelde :)
    ?
    1
    2
    3
    echo date('d.m.Y G:i' , time()+60);         //1min pärast
    echo date('d.m.Y G:i' , time()+60*60);      //1h pärast
    echo date('d.m.Y G:i' , time()+60*60*24);   //24h pärast
    Kui päevade, kuude ja aastateni jõuad, siis võib arvutamine natuke keerulisemaks osutada, seepärast võiks arvutusi teha mktime() funktsiooniga. Näiteks 27 aastat enne.
    ?
    1
    2
    $sp = mktime(0,0,0,10,29,1969-27);
    echo date('d.m.Y', $sp);            //29.10.1942
     Kuupäevadega arvutamisel on võimalik kasutada ka inglise keelseid lauseid, näiteks järgmised:
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    echo strtotime("now");
    echo strtotime(" tomorrow ");
    echo strtotime(" yesterday ");
    echo strtotime("10 September 2000");
    echo strtotime("+1 day");
    echo strtotime("+1 week");
    echo strtotime("+2 week 3 days 4 hours 5 seconds ");
    echo strtotime("next Thursday");
    echo strtotime("last Monday ");
    echo strtotime("5pm + 6 Hours");
    echo strtotime("now + 4 fortnights");
    echo strtotime("last Monday");
    echo strtotime("4pm yesterday");
    echo strtotime("6am 10 days ago");
      Seletused leiad siit:  http://www.php.net/manual/en/datetime.formats.relative.php
    Kuupäeva valideerimine
    Nagu eelpool mainitud, on ajafunktsioone päris palju ja kõike ei jõua läbi vaadata. Viimase asjana tahaks siiski näidata funktsiooni, mis kontrollib, kas selline kuupäev eksisteerib. Kasuta seda näiteks kasutaja poolt sisestatud kuupäeva kontrollimiseks. Kui antud kuupäev on olemas, tuleb 'Kuupäev korras!' ja kui on mingi viga, nagu allpool, siis 'Kuupäev on valesti sisestatud'.
    ?
    1
    2
    3
    4
    5
    if(checkdate(12,32,2013))
         
    fclose($minu_fail);
    Tekstifaili info
    Vaatame mõningaid võimalusi kasutatava tekstifaili info kuvamise kohta.
    • Faili nimi - nu selle väärtuse saame kenasti muutujast
    • Faili suurus - seda me piilusime ka juba ning kuvab faili suuruse baitides
    • Viimati muudetud - viimati muutmise all vaatame kolme funktsiooni:
      • filectime() - kuvab viimati faili sisu ja metaandmete muutmise aja sekundites
      • filemtime() - kuvab viimati faili sisu muutmise aja sekundites
      • fileatime() - viimati faili kirjutatud või loetud aeg sekundites
    ?
    1
    2
    3
    4
    5
    6
    $allikas = 'loomad.txt';
    $suurus = filesize($allikas);
    $viimati_muudetud = date('d.m.Y G:i' ,filectime($allikas));
    echo 'Faili nimi: '.$allikas.'
    echo 'Faili suurus: '.$suurus.'baiti
    echo 'Viimati muudetud: '.$viimati_muudetud.'
    Üks tore funktsioon siinkohal on kasutada pathinfo(), mis kuvab faili omadused nagu:
    • dirname - kataloog
    • basename - faili nimi koos laiendusega
    • filename - faili nimi
    • extension - faili laiendus massiivina
    ?
    1
    2
    3
    4
    5
    6
    $allikas = 'kataloog/loomad.txt';
    $faili_info = pathinfo($allikas);
    echo $faili_info['dirname'].'
    echo $faili_info['basename'].'
    echo $faili_info['filename'].'
    echo $faili_info['extension'].'
    Tekstifailis saadud andmete töötlemine
    Selleks, et failist saadud andmetega peale kuvamise midagi peale hakata, tuleb need lugeda massiivi. Üks võimalus on selleks kasutada file() funktsiooni.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $allikas = ' numbrid .txt';
    $minu_fail = file($allikas);
    print_r($minu_fail);
    //väljund
        [0] => 12
        [1] => 13
        [2] => 3
        [3] => 54
        [4] => 6
        [5] =>
        [6] => 34
        [7] => 3
        [8] => 23
        [9] =>
        [10] => 23
        [11] => 44
    Nagu väljundist vaadata võite, oli mul tekitatud numbrite loend . Kahjuks oli ka mul tühje ridu sisse "unustatud". Õnneks võimaldab antud funktsioon tühje ridu ignoreerida.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $allikas = 'numbrid.txt';
    $minu_fail = file($allikas, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    print_r($minu_fail);
    //väljund
        [0] => 12
        [1] => 13
        [2] => 3
        [3] => 54
        [4] => 6
        [5] => 34
        [6] => 3
        [7] => 23
        [8] => 23
        [9] => 44
    Ja kui nüüd, kui andmed on massiivis, siis saad kenasti massiividest tuntud funktsioone kasutada. Näiteks arvutame arvude kogusumma .
    ?
    1
    2
    3
    $allikas = 'numbrid.txt';
    $minu_fail = file($allikas, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    echo array_sum($minu_fail);     //215
    PHP saab hakkama ka mitmemõõtmeliste massiividega aga piilume seda järgises peatükis. Seni aga mõningad ülesanded.
    Ülesanne 11
    • Loo programm, kuhu saan lisada ürituse jaoks osalejaid
      • Kõik osalejad salvestatakse tekstifaili
    • Loo uus veebileht, mis kuvab kõik registreerunud kasutajad
      • Kuva nimed ülevalt alla
      • Täienda koodi, mis kuvab osalejate arvu ning viimati lisatud nime kuupäeva
      • Kindlusta, et vormi ei saaks lisada tühje ridu

    15 - PHP - Töö CSV failidega (Ülesanne 12)
    Teemad
    • Mis on CSV
    • fgetcsv
    • explode
    • implode

    Sissejuhatus
    CSV (Comma Separated Values ) on failivorming, kus andmed on üksteisest eraldatud komadega või hoopis semikoolonitega. Iga rida käsitletakse kirjena ning semikooloniga eraldatakse andmeväljad teineteisest. Tegemist on populaarse failiga mille töötlemisega saavad hakkama nii Notepad, Excel, MySQL jne. Antud formaati kasutatakse näiteks ühest programmist teise andmete eksportimiseks.
     
    CSV faili sisu kuvamine
    CSV faili sisu lahkamiseks kasutame fgetscv() funktsiooni, nus vajab kolme parameetrit:
    • faili ennast
    • faili suurust (tähemärkide arvu)
    • eraldajat

    Antud funktsiooni kasutamisel loetakse sisse ainult esimene rida ja see ka massiivina.
    ?
    1
    2
    3
    4
    5
    $allikas = 'pallivise.csv';
    $minu_csv = fopen($allikas, 'r') or die('Ei leia faili!');
    $rida = fgetcsv($minu_csv, filesize($allikas),';');
    var_dump($rida);
    fclose($minu_csv);
    Väljund:
    ?
    1
    2
    3
    4
    array ( size =3)
      0 => string 'Madis' ( length =5)
      1 => string 'M' (length=1)
      2 => string '19' (length=2)
    Selleks, et saaks kätte kõik read, tuleb jällegi kasutada mõnda tsüklit, näiteks while(), mis vastutab ridade eest. Kuna igas reas on veel kolm elementi, siis peame ühe tsükli veel looma - for().Ning täiendame koodi näiteks järjekorranumbriga.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $allikas = 'pallivise.csv';
    $minu_csv = fopen($allikas, 'r') or die('Ei leia faili!');
    $jrk = 1;
    while(!feof($minu_csv)){
        $rida = fgetcsv($minu_csv, filesize($allikas),';');
        $arv = count($rida); //rea väljade arv
        echo $jrk.'. '; //järjekorra number
        $jrk++;
        for($i = 0; $i
        
        
    Nüüd kui valida soovitud fail ja klikkida nupul, siis peaks vormi ülevalkuvatama faili nimi.
     Edasi saadetakse fail töötlemiseks serveri ajutisse kataloogi. Et selles veenuda, kirjutame järgmise koodi:
    ?
    1
    2
    3
    4
    5
    if(!empty($_FILES['minu_fail']['name'])){
        $sinu_faili_nimi = $_FILES['minu_fail']['name'];
        $ajutine_fail= $_FILES['minu_fail']['tmp_name'];
             
        echo $ajutine_fail;
     Nüüd peaks näha olema, kus seda faili ja mis nimega seda hoitakse.
    ?
    1
    C:\wamp\tmp\php2119.tmp
    Ajutisest kohast sinu soovitud kataloogi faili saatmiseks, kasutame move_uploaded_file()funktsiooni. Ja täiendan seda samal ajal kontrolliga faili üleslaadimise õnnestumise või ebaõnnestumise kohta.
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(!empty($_FILES['minu_fail']['name'])){
        $sinu_faili_nimi = $_FILES['minu_fail']['name'];
        $ajutine_fail= $_FILES['minu_fail']['tmp_name'];
             
        $kataloog = 'failid';
        if(move_uploaded_file($ajutine_fail, $kataloog.'/'.$sinu_faili_nimi)){
            echo 'Faili üleslaadimine oli edukas'; 
        }}
    Üleslaetava faili piirangud - faili suurus
    Vaatame, kuidas piirata failide üleslaadimist. Vaatame näiteks failisuuruse järgi. 
    ?
    1
    $faili_suurus = $_FILES['minu_fail']['size'];
    Tulemus antakse baitides. Seega tuleb samas ühikus anda ka piirang, näiteks 1MB saamiseks tuleb kirjutada 1048576.  
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if(!empty($_FILES['minu_fail']['name'])){
        $sinu_faili_nimi = $_FILES['minu_fail']['name'];
        $ajutine_fail= $_FILES['minu_fail']['tmp_name'];
         
        $faili_suurus = $_FILES['minu_fail']['size'];   //faili suurus
        $max_suurus = 1048576;                          //seame lubatud failisuuruse piiri
         
        if($faili_suurus
  • Vasakule Paremale
    PHP ALUSED RAAMAT #1 PHP ALUSED RAAMAT #2 PHP ALUSED RAAMAT #3 PHP ALUSED RAAMAT #4 PHP ALUSED RAAMAT #5 PHP ALUSED RAAMAT #6 PHP ALUSED RAAMAT #7 PHP ALUSED RAAMAT #8 PHP ALUSED RAAMAT #9 PHP ALUSED RAAMAT #10 PHP ALUSED RAAMAT #11 PHP ALUSED RAAMAT #12 PHP ALUSED RAAMAT #13 PHP ALUSED RAAMAT #14 PHP ALUSED RAAMAT #15 PHP ALUSED RAAMAT #16 PHP ALUSED RAAMAT #17 PHP ALUSED RAAMAT #18 PHP ALUSED RAAMAT #19 PHP ALUSED RAAMAT #20 PHP ALUSED RAAMAT #21 PHP ALUSED RAAMAT #22 PHP ALUSED RAAMAT #23 PHP ALUSED RAAMAT #24 PHP ALUSED RAAMAT #25 PHP ALUSED RAAMAT #26 PHP ALUSED RAAMAT #27 PHP ALUSED RAAMAT #28 PHP ALUSED RAAMAT #29 PHP ALUSED RAAMAT #30 PHP ALUSED RAAMAT #31 PHP ALUSED RAAMAT #32 PHP ALUSED RAAMAT #33 PHP ALUSED RAAMAT #34 PHP ALUSED RAAMAT #35 PHP ALUSED RAAMAT #36 PHP ALUSED RAAMAT #37 PHP ALUSED RAAMAT #38 PHP ALUSED RAAMAT #39 PHP ALUSED RAAMAT #40 PHP ALUSED RAAMAT #41 PHP ALUSED RAAMAT #42 PHP ALUSED RAAMAT #43 PHP ALUSED RAAMAT #44 PHP ALUSED RAAMAT #45 PHP ALUSED RAAMAT #46 PHP ALUSED RAAMAT #47 PHP ALUSED RAAMAT #48 PHP ALUSED RAAMAT #49 PHP ALUSED RAAMAT #50 PHP ALUSED RAAMAT #51 PHP ALUSED RAAMAT #52 PHP ALUSED RAAMAT #53 PHP ALUSED RAAMAT #54 PHP ALUSED RAAMAT #55 PHP ALUSED RAAMAT #56 PHP ALUSED RAAMAT #57 PHP ALUSED RAAMAT #58 PHP ALUSED RAAMAT #59 PHP ALUSED RAAMAT #60 PHP ALUSED RAAMAT #61 PHP ALUSED RAAMAT #62 PHP ALUSED RAAMAT #63 PHP ALUSED RAAMAT #64 PHP ALUSED RAAMAT #65 PHP ALUSED RAAMAT #66 PHP ALUSED RAAMAT #67 PHP ALUSED RAAMAT #68 PHP ALUSED RAAMAT #69 PHP ALUSED RAAMAT #70 PHP ALUSED RAAMAT #71 PHP ALUSED RAAMAT #72 PHP ALUSED RAAMAT #73 PHP ALUSED RAAMAT #74 PHP ALUSED RAAMAT #75 PHP ALUSED RAAMAT #76 PHP ALUSED RAAMAT #77 PHP ALUSED RAAMAT #78 PHP ALUSED RAAMAT #79 PHP ALUSED RAAMAT #80 PHP ALUSED RAAMAT #81 PHP ALUSED RAAMAT #82 PHP ALUSED RAAMAT #83 PHP ALUSED RAAMAT #84 PHP ALUSED RAAMAT #85 PHP ALUSED RAAMAT #86 PHP ALUSED RAAMAT #87 PHP ALUSED RAAMAT #88 PHP ALUSED RAAMAT #89 PHP ALUSED RAAMAT #90 PHP ALUSED RAAMAT #91 PHP ALUSED RAAMAT #92 PHP ALUSED RAAMAT #93 PHP ALUSED RAAMAT #94 PHP ALUSED RAAMAT #95 PHP ALUSED RAAMAT #96 PHP ALUSED RAAMAT #97 PHP ALUSED RAAMAT #98 PHP ALUSED RAAMAT #99 PHP ALUSED RAAMAT #100 PHP ALUSED RAAMAT #101 PHP ALUSED RAAMAT #102 PHP ALUSED RAAMAT #103 PHP ALUSED RAAMAT #104 PHP ALUSED RAAMAT #105 PHP ALUSED RAAMAT #106 PHP ALUSED RAAMAT #107 PHP ALUSED RAAMAT #108 PHP ALUSED RAAMAT #109 PHP ALUSED RAAMAT #110 PHP ALUSED RAAMAT #111 PHP ALUSED RAAMAT #112 PHP ALUSED RAAMAT #113 PHP ALUSED RAAMAT #114 PHP ALUSED RAAMAT #115 PHP ALUSED RAAMAT #116 PHP ALUSED RAAMAT #117 PHP ALUSED RAAMAT #118 PHP ALUSED RAAMAT #119
    Punktid 50 punkti Autor soovib selle materjali allalaadimise eest saada 50 punkti.
    Leheküljed ~ 119 lehte Lehekülgede arv dokumendis
    Aeg2016-09-20 Kuupäev, millal dokument üles laeti
    Allalaadimisi 24 laadimist Kokku alla laetud
    Kommentaarid 0 arvamust Teiste kasutajate poolt lisatud kommentaarid
    Autor metsheinm Õppematerjali autor

    Kasutatud allikad

    Sarnased õppematerjalid

    PHP EDASIJÕUDNUD RAAMAT
    210
    docx

    PHP EDASIJÕUDNUD RAAMAT

    Nimelt otsustasin vana php mooduli lüüa vähemalt kaheks ning kirjeldada iga teema täpsemalt lahti. Esimene osa peaks olema php põhikursus, kus õpime aluseid ning selles teemas nihutame latti kõrgemale ja omandame keerulisemaid asju. Näiteks õpime kuidas siduda php andmebaasiga, kuidas saada paremini läbi vormidega, mida hakata peale sessioonidega jne. Alustamegi kohe andmebaasi tutvustamisega, milleks meil seda vaja on ja kuidas andmebaasi hallata. Mis on MySQL? Niisiis, php alused mooduli alguses paigaldasime arvutisse WAMP serveri, mis paigaldas meie arvutisse Apache veebiserveri, MySQL andmebaasi ja Php mooduli. Kuigi tihti öeldakse MySQL kohta lihtsalt andmebaas, siis on tegemist tegelikult andmebaasihalduriga või siis kaandmebaasimootoriga. See sisaldab endas:  andmebaasi serverit  klientprogrammi andmebaaside päringuteks  programme administreerimiseks Andmebaase on meil vaja andmete hoidmiseks kindlas vormingus. Oluline on selle

    Informaatika
    Programmeerimine PHP
    134
    pdf

    Programmeerimine PHP

    Programmeerimine keeles PHP Andrei Porõvkin Tartu Ülikool (2009) 1 1.1 Üldinfo Alguses oli interneti lehed omavahel seotud staatiliste html dokumentide süsteemina, aga selleks, et mingis dokumendis muutusi teha oli vaja lehti failisüsteemis käsitsi muuta. Kahjuks selline staatiline mudel ei jõua kiirelt muutuva kaasaegse maailma progressile järgi. Seega võeti kasutusele dünaamiline mudel. Dünaamilise mudeli korral ei hoita serveris staatilisi html lehte vaid neid genereeritakse selleks spetsiaalselt välja töötatud programmidega, mis serveril töötavad. Antud kursuse jooksul tutvume klient-server arhitektuuriga, installeerime enda arvutisse veebiserveri ja php interpretaatori ning saame baasteadmisi serveripoolsest keelest PHP. Kursuse teemad on pühendatud ainult PHP keelele (väljarvatud seitsmes teema), aga see ei tähenda, et sellest piisab suure ja eduka veebilehe loomiseks. Mahuka infosüsteemi ei saa ette kujutada ilma andme

    Allika?petus
    Programmeerimise alused
    6
    doc

    Programmeerimise alused

    Programmeerimise alused 13.november 2009 Henri Jeret 10 c Programmeerimisest rääkides ja sellega tegeledes peab saama lahti üldarvamusest, et arvuti on tark. Tegelikult on arvuti võrdlemisi rumal ning oskamatu. Ta küll oskab väga täpselt käsku täita, kuid seda tehes ta ei toetu enda tarkustele. Arvuti teeb vaid seda, mida programmerija on talle ette kirjutanud. Kui töödates tekib olukord, mille lahendamiseks pole talle mingeid käske antud, siis jookseb ta kokku või kuvab vastava veateate kujul: ,,Tundmatutel põhjustel...". Erinevaid programmeerimise keeli on kokku umbes 627. Selle all mõtlen peaaegu kõiki arvuti keeli. Mõned populaarsemad keeled: 1. Java ­ Java tuli ametlikult välja aastal 1995. Autor on James Gosling. Javal on nii mõndagi ühist C ja C++ keelega, kuna ta tugineb neil keeltel. Kuigi Java on hetkel kõige populaarsem keel, on tema populaarsus viimase seitsme aasta jooksum umbes 7% vähenenud. 2. C - C kee

    Informaatika
    Võrgurakendused I kontrolltöö
    8
    docx

    Võrgurakendused I kontrolltöö

    Võrgurakenduste kontrolltöö 1.HTML ja CSS: 10+20+20+20=70p A)Märgi õige variant: teksti sisendvälja tag. 1) 2)

    3) 4) Suht obvious, mis õige variant on(kolmas btw). B) tabeli tegemise ülesanne. Näide: tabel ühe rea ja kolme tulbaga.
    1 2 3
    C)Kirjuta CSS reegel, mis muudab kõik h2 tagid "eri" (class nimega “eri”) roheliseks. h2.eri { color: green; } D)Soovime, et ul tagi sees olevad li tagi tekstid oleks sinised, aga kui ul tagi sees on veel sisemised ul tagid, siis nende sisemiste ul-de sees olevate li-de tekstis on punased . Kirjuta sobivad css-i reeglid. NB! W3schoolsist võiks teada kuute põhilist selectorit! ul li { color: blue;

    Võrgurakendused i
    ICD0007 - Veebitehnoloogiad teooria konspekt
    11
    docx

    ICD0007 - Veebitehnoloogiad teooria/konspekt

    Muutujale väärtuse omistamine globaalsest muutjast. Kuidas vaikimis väärtust omistada kõige ilusamini. 2. CSS (eksamil muret ei ole tekitanud) font-family: Verdana, sans-serif; // kui ühe sõnaga nimi, siis pole jutumärke vaja. Cascading - asjad saavad üksteise peal olla. Võtab erinevatest kohtadest asju (nt body asjad + h1 asjad). Efekt kujuneb mitmest erinevast stiilist kokku. Parem klikk - inspect element (siis näen, missugune CSS mõjutab). Elementide identifitseerimine id=”dog” #dog { ... } Sama id saab olla ühel unikaalsel elemendil. Üldiselt on see piirang. Üks saab olla nt põhimenüü. Klassi saab panna paljudele elementidele peale. Nt kõikide tabelite päised, uudisportaalis kõikide h2 pealkirjade stiil. class=”cat” .cat { ... } class=”cat fat” - nii saab ühele asjale panna mitu klassi korraga. Halva näite probleem: klassi nimi ei tohiks iseloomustada sisu või välimust (nt “paks- pealkiri”) vaid semantiliselt eesmärki (tabl

    Veebiprogrammeerimine
    Javascript objektid näited
    40
    doc

    Javascript objektid,näited

    Steve Mägi A-08 13.03.2014 PÄRNUMAA KUTSEHARIDUSKESKUS Arvutiteenindus A-08 Steve Mägi Javascript (Objektid, Sisseehitatud objektid, Html dom objektid, sündmused, näited) Juhendaja: Sander Mets Pärnu 2009 1 Steve Mägi A-08 13.03.2014 Sisukord Javascripti keele objektid.....................................................................................................6 Objekt MATH..................................................................................................................9 Objekti M

    Informaatika
    Google App Engine
    55
    pdf

    Google App Engine

    TALLINNA ÜLIKOOL Matemaatika-loodusteaduskond Informaatika instituut Google App Engine Iseseisev töö aines Veebiprogrammeerimine IFI6011 Andris Reinman ITJ-08 Õppejõud: Jaagup Kippar Tallinn 2010 Google App Engine ­ Andris Reinman Sisukord Google App Engine............................................................................................................................ 1 Sisukord......................................................................................................................................... 2 Tutvustus.......................................................................................................

    Veebiprogrammeerimine
    Nimetu
    575
    docx

    Nimetu

    Sisukord Eessõna Hea õpilane! Microsofti arenduspartnerid ja kliendid otsivad pidevalt noori ja andekaid koodimeistreid, kes oskavad arendada tarkvara laialt levinud .NET platvormil. Kui Sulle meeldib programmeerida, siis usun, et saame Sulle pakkuda vajalikku ja huvitavat õppematerjali. Järgneva praktilise ja kasuliku õppematerjali on loonud tunnustatud professionaalid. Siit leid uusimat infot nii .NET aluste kohta kui ka juhiseid veebirakenduste loomiseks. Teadmiste paremaks omandamiseks on allpool palju praktilisi näiteid ja ülesandeid. Ühtlasi on sellest aastast kõigile kättesaadavad ka videojuhendid, mis teevad õppetöö palju põnevamaks. Oleme kogu õppe välja töötanud vabavaraliste Microsoft Visual Studio ja SQL Server Express versioonide baasil. Need tööriistad on mõeldud spetsiaalselt õpilastele ja asjaarmastajatele Microsofti platvormiga tutvumiseks. Kellel on huvi professionaalsete tööriistade proovimiseks, siis tasub lähemalt tutvuda õppuritele

    Informaatika




    Kommentaarid (0)

    Kommentaarid sellele materjalile puuduvad. Ole esimene ja kommenteeri



    Sellel veebilehel kasutatakse küpsiseid. Kasutamist jätkates nõustute küpsiste ja veebilehe üldtingimustega Nõustun