Tehtävä 1 Kirjoita funtio joka laskee kolmen vastuksen rinnankytkennän sekä näyttää laskussa käytettyjen vastusten ja kokonaisvastuksen arvot. Esim. RI - 100 Ω R2 - 100 Ω R3 - 100 Ω Rkok - 33.333333 Ω
FUNKTIOT
ITSE KOODATUT FUNKTIOT
Sisäänrakennettujen PHP-funktioiden lisäksi voidaan myös luoda omia funktioita sekä hyödyntää omissa funktioissa PHP:n funktioita.Itse luodun funktion (aliohjelman) yleinen rakenne:
function funktionNimi() { funktiolle määritetyt tehtävät; } funktionNimi();
Huomaa funktioista seuraavat:
1. Tarvitaan funktio jolle on määritelty nimi sekä tehtävät.
2. Funktiokutsulla siirrytään itse funktioon tekemään määriteltyjä tehtäviä.
3. Funktio on kirjoitettava koodaukseen ennen funktiokutsua !!!
4. Yhden www-sivun koodauksessa (samassa tiedostossa) ei toimi samannimiset funktiot.
Alla oleva esimerkki tulostaa näytölle tekstin "Hyvää iltaa!".
/* naytaTeksti() funktion luominen */ <!DOCTYPE HTML> <html lang="en"> <html> <head> <meta charset="UTF-8"> <title>TESTISIVU</title> </head> <body> <?php function naytaTeksti() { echo "Hyvää iltaa!"; } naytaTeksti(); ?> </body> </html>
Hyvää iltaa!
Argumenttifunktioksi kutsutaan sellaista funktiota jonne funktiokutsussa siirretään tietoa.
Esimerkissä siirrytään funktiokutsulla viisi kertaa
sukuNimi
-funktioon siirtäen funktioon etunimi.
Etunimi sijoittuu funktion määrittely osassa olevaan $etunimi
-muuttujaan ja on sen jälkeen funktion sisällä käytettävissä./* Argumenttifunktion rakenne */ <?php function sukuNimi($etunimi) { echo "$etunimi Virtanen.<br>"; } sukuNimi("Jani"); sukuNimi("Veijo"); sukuNimi("Raineri"); sukuNimi("Tenho"); sukuNimi("Jaakko"); ?>
Jani Virtanen.
Veijo Virtanen.
Raineri Virtanen.
Tenho Virtanen.
Jaakko Virtanen.
Tehtävä 2 Tee PHP-ohjelma jossa funktioon siirretään ympyrän säteen arvo. Funktio laskee ja näyttää ympyrän pinta-alan sekä kehän pituuden.
Esimerkissä funktioon siirretään kaksi tietoa.
/* Kahden arvon siirtäminen funktioon */ <?php function etuNimi($nimi, $vuosi) { echo "$nimi Rupunen. Syntyi vuonna $vuosi <br>"; } etuNimi("Tuomas", "1975"); etuNimi("Henri", "1978"); etuNimi("Petteri", "1983"); ?>
Tuomas Rupunen. Syntyi vuonna 1975
Henri Rupunen. Syntyi vuonna 1978
Petteri Rupunen. Syntyi vuonna 1983
Tehtävä 3 Muuta esimerkkiä seuraavasti: - Tuomas on 25, Henri on 27 ja Petteri 30 vuotias - siirrä ikä funktiokutsulla yhdessä etunimen kanssa - lisää muuttuja johon sijoitetaan nykyinen vuosiluku sekä lisää funktioon laskutoimitus joka laskee syntymävuoden - näytä esimerkin mukaisesti www-sivulle
Esimerkissä funktion määrittelyssä asetetaan
minimiKorkeus
-muuttujalle oletusarvoksi 50 jota käytetään mikäli funktioon ei siirretä
tietoa [testiKorkeus();
]./* Oletusarvon käyttäminen funktiossa */ <?php function testiKorkeus($minimiKorkeus = 50) { echo "Korkeus on : $minimiKorkeus <br>"; } testiKorkeus(350); testiKorkeus(); testiKorkeus(135); testiKorkeus(80); ?>
Korkeus on : 350
Korkeus on : 50
Korkeus on : 135
Korkeus on : 80
Tehtävä 4 Muuta esimerkkiä siten että, numero-arvot on sijoitettu PHP-koodauksen alussa muuttujiin sekä muuttujien avulla arvot siirretään funktioon.
Funktioon voidaan siirtää tietoja muuttujien avulla.
Esimerkissä funktioon siirretään muuttujissa olevat teksti ja taulukko. Taulukossa on suorakulmaisen kolmisivut, muuttujassa teksti, esimerkki laskee kolmion hypotenuusan siihen tarkoitetulla matematiikkafunktiolla.
/* Muuttujissa olevan tiedon siirtäminen funktioon */ <?php $sivut = array(25,50); $teksti1 = "hypotenuusa"; function kolmioLasku($sivut,$teksti1) { echo "Kolmion sivut ovat ".$sivut[0]." ja ". $sivut[1]. " jolloin<br>"; echo $teksti1." on ".hypot($sivut[0],$sivut[1]); } kolmioLasku($sivut,$teksti1); ?>
Kolmion sivut ovat 25 ja 50 jolloin
hypotenuusa on 55.901699437495
Tehtävä 5 Tee funktio nimeltään pyoristaLuku jossa näytetään funktioon siirretty luku sekä floor()-funtiolla pyöristetty luku. Näytä luvut funktiolla esimerkin mukaisesti alekkain: Luku 2,34 on pyöristettynä 2 Luvut ovat seuraavat: 2,35 5,55 -101,2 -219,7 Löydät floor()-funktion täältä!!
Esimerkissä suoritetaan yhteenlaskuja, funktiokutsut on sijoitettu
echo
-lauseisiin. Huomaa funktion viimeisenä
rivinä on return $summa;
jossa siirretään summa
-muuttujassa oleva tulos näytettäväksi
funktion ulkopuolella echo
-lauseessa.<?php function yhteenlasku($luku1, $luku2) { $summa = $luku1 + $luku2; return $summa; } echo "5 + 10 = " . yhteenlasku(5, 10) . "<br>"; echo "7 + 13 = " . yhteenlasku(7, 13) . "<br>"; echo "2 + 4 = " . yhteenlasku(2, 4); ?>
5 + 10 = 15
7 + 13 = 20
2 + 4 = 6
Tehtävä 6 Sovella esimerkkiä kolmen vastuksen rinnankytkennän laskemiseen seuraavasti: - vastusten arvot sijoitetaan muuttujiin R1,R2 ja R3 funktion ulkopuolella PHP-koodin alussa - edellä mainittuissa muuttujissa olevan arvot siirretään rinnanLasku-funktioon kuten esimerkissä - funktiosta palautetaan Rkok-muuttujan avulla tieto näytettäväksi kuten esimerkissäkin
Taulukko-funktiot
Aika, päivä ja kalenteri sekä aikavyöhyke
Hakemisto-funktiot
Funktio | Selite | Esimerkki |
---|---|---|
chdir() | Siirtyminen nykyisestä kansiosta ilmoitettuun kansioon | Esim |
chroot() | Siirtyminen suoraan ns juureen eli pääkansioon | Esim |
closedir() | Sulkee tiedostojen käsittelyn | Esim |
dir() | Palauttaa tiedostolistauksen | Esim |
getcwd() | Paluu nykyiseen työtiedostoon (kansioon) | Esim |
opendir() | Avaa tiedostokansio? | Esim |
readdir() | Avaa tiedostokansio? | Esim |
rewinddir() | Sulkee opendir() toiminnon | Esim |
scandir() | Palauttaa taulukkoon tiedosto ja hakemistot | Esim |
Tiedostojärjestelmä-funktiot
Virheidenkäsittely-funktiot
Suodatin-funktiot
FTP- ja HTTP-funtiot
Libxml-funktiot
Tässä on erilaisia libxml-kirjasto-funktiota.
Funktio | Selite | Esimerkki |
---|---|---|
libxml_clear_errors() | Clear libxml error buffer | Esim |
libxml_get_errors() | Retrieve array of errors | Esim |
libxml_get_last_error() | Retrieve last error from libxml | Esim |
libxml_set_streams_context() | Set the streams context for the next libxml document load or write | Esim |
libxml_use_internal_errors() | Disable libxml errors and allow user to fetch error information as needed | Esim |
Funktio | Selite | Esimerkki |
---|---|---|
LIBXML_COMPACT |
Set small nodes allocation optimization. This may improve the application performance | Esim |
LIBXML_DTDATTR |
Set default DTD attributes | Esim |
LIBXML_DTDLOAD |
Load external subset | Esim |
LIBXML_DTDVALID |
Validate with the DTD | Esim |
LIBXML_NOBLANKS |
Remove blank nodes | Esim |
LIBXML_NOCDATA |
Set CDATA as text nodes | Esim |
LIBXML_NOEMPTYTAG |
Change empty tags (e.g. <br/> to <br></br>), only available in the DOMDocument->save() and DOMDocument->saveXML() functions | Esim |
LIBXML_NOENT |
Substitute entities | Esim |
LIBXML_NOERROR |
Do not show error reports | Esim |
LIBXML_NONET |
Stop network access while loading documents | Esim |
LIBXML_NOWARNING |
Do not show warning reports | Esim |
LIBXML_NOXMLDECL |
Drop the XML declaration when saving a document | Esim |
LIBXML_NSCLEAN |
Remove excess namespace declarations | Esim |
LIBXML_XINCLUDE |
Use XInclude substitution | Esim |
LIBXML_ERR_ERROR |
Get recoverable errors | Esim |
LIBXML_ERR_FATAL |
Get fatal errors | Esim |
LIBXML_ERR_NONE |
Get no errors | Esim |
LIBXML_ERR_WARNING |
Get simple warnings | Esim |
LIBXML_VERSION |
Get libxml version (e.g. 20605 or 20617) | Esim |
LIBXML_DOTTED_VERSION |
Get dotted libxml version (e.g. 2.6.5 or 2.6.17) | Esim |
Sähköposti
Käännökset kesken
Taulukossa suorituksen aikana tapahtuvia konfiguraatioita. The behavior of the mail functions is affected by settings in php.ini:
Nimi | Oletus | Selite | Muokattava | Esimerkki |
---|---|---|---|---|
mail.add_x_header |
"0" | Add X-PHP-Originating-Script that will include UID of the script followed by the filename. For PHP 5.3.0 and above | PHP_INI_PERDIR | Esim |
mail.log |
NULL | The path to a log file that will log all mail() calls. Log include full path of script, line number, To address and headers. For PHP 5.3.0 and above | PHP_INI_PERDIR | Esim |
SMTP |
"localhost" | Windows only: The DNS name or IP address of the SMTP server | PHP_INI_ALL | Esim |
smtp_port |
"25" | Windows only: The SMTP port number. For PHP 4.3.0 and above | PHP_INI_ALL | Esim |
sendmail_from |
NULL | Windows only: Specifies the "from" address to be used when sending mail from mail() | PHP_INI_ALL | Esim |
sendmail_path |
"/usr/sbin/sendmail -t -i" | Specifies where the sendmail program can be found. This directive works also under Windows. If set, SMTP, smtp_port and sendmail_from are ignored | PHP_INI_SYSTEM | Esim |
PHP 5, email-funktiot:
Funktio | Selite | Esimerkki |
---|---|---|
ezmlm_hash() | Calculates the hash value needed by EZMLM | Esim |
mail() | Allows you to send emails directly from a script | Esim |
Misc
MySQLi
SimpleXML & XML
Merkkijono
Pakkaaminen
Funktio | Selite | PHP Versio | Esimerkki |
---|---|---|---|
zip_close() | Closes a ZIP file | 4 | Esim |
zip_entry_close() | Closes an entry in the ZIP file | 4 | Esim |
zip_entry_compressedsize() | Returns the compressed size of an entry in the ZIP file | 4 | Esim |
zip_entry_compressionmethod() | Returns the compression method of an entry in the ZIP file | 4 | Esim |
zip_entry_filesize() | Returns the actual file size of an entry in the ZIP file | 4 | Esim |
zip_entry_name() | Returns the name of an entry in the ZIP file | 4 | Esim |
zip_entry_open() | Opens an entry in the ZIP file for reading | 4 | Esim |
zip_entry_read() | Reads from an open entry in the ZIP file | 4 | Esim |
zip_open() | Opens a ZIP file | 4 | Esim |
zip_read() | Reads the next entry in a ZIP file | 4 | Esim |