FUNKTIOT

PHP:n todellinen voima tulee sen funktioista, PHP:ssä on yli 1000 sisäänrakennettua funktiota.


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!



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 Ω



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

Täällä on erilaisia taulukoihin liittyviä funktiota.



Aika, päivä ja kalenteri sekä aikavyöhyke

Täältä löydät kaikki aika, päivä ja kalenteri funktiot. Ja täältä aikavyöhykkeet.


Hakemisto-funktiot

Tässä on erilaisia hakemistoon liityviä funktiota/ komentoja!


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

Täältä löydät kaikki tiedostojärjestelmä-funktitot.



Virheidenkäsittely-funktiot

Täältä löydät kaikki virheiden käsittely funktiot.



Suodatin-funktiot

Täältä löydät kaikki suodatin-funktiot.



FTP- ja HTTP-funtiot

Täältä löydät kaikki FTP- ja HTTP-funktiot.


Libxml-funktiot

KÄÄNNÖKSET KESKEN ja TESTAAMATTA
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

PHP tarjoaa välineet omien sähköpostipalvelujen rakenteluun.

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

Täältä löydät erilaisia misc funktioita.



MySQLi

Täältä löydät erillaisia MySQLi funktioita.



SimpleXML & XML

Täältä löydät erillaisia SimpleXML ja XML funktioita.



Merkkijono

Täältä löydät erillaisia merkkijono funktioita.



Pakkaaminen

Tässä on erilaisia pakkaamiseen liityviä funktiota/ komentoja!


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