PHP - helposti: verkkoohjelmointi
()
About this ebook
Miten voit käyttää cURL yhteyttä tiedon hakemiseen? Uusimmissa PHP-verioissa MySQL-tuki poistuu. Miten voi varautua tähän haasteeseen?
Kenties sinua kiinnostaa valokuvaus ja kuvankäsittely. Haluaisitko verkossa esittämillesi valokuvillesi hienot, loistavat kehykset?
Tämä opas vastaa näihin ja moniin muihin kysymyksiin.
Pekka Mansikka
Pekka Mansikka, a Finnish self-taught researcher. He is especially familiar with the study of ancient eclipses and the timing of chronologies according to them. As a publisher, he also publishes historically interesting scientific books.
Read more from Pekka Mansikka
Muinaisten kansojen uusi kronologia tähtitieteen avulla: Historian aputieteet Rating: 0 out of 5 stars0 ratingsMuinaiset pimennykset paljastavat salaisuuden Rating: 0 out of 5 stars0 ratingsMuinaisten kansojen uusi kronologia tähtitieteen avulla, II painos Rating: 0 out of 5 stars0 ratings
Related to PHP - helposti
Reviews for PHP - helposti
0 ratings0 reviews
Book preview
PHP - helposti - Pekka Mansikka
uudempaan.
1. Tästä se alkaa
1.1 Syntaksit
Aloitus- ja lopetustagit
Esimerkki 1.1: Perustagit
Vaikka php:ta on mahdollista käyttää aloitustagilla htacess-tiedostoa. Php-tiedoston tiedosto-päätteet ovat .php, .php3, .php4, .php5, .php7, .phps, .phpt . ja .phtml joista yleensä käytetään ainoasataan ensiksimainittua.
Php-skriptin kirjoittaminen sisennyksin on tärkeää, jotta skriptistä saa paremmin selvää, kun sen koko kasvaa huomattavasti.
1.2 Ohjelman sijainti php-tiedostossa
Php-skripti voi sijaita joko body-osiossa tai sen ulkopuolella. Tärkeää siinä on kaksi seikkaa:
Ohjelman tulostus täytyy olla body-osiossa.
Muuttujan, jonka tietoja tulostetaan täytyy olla tiedostossa ylempänä kuin varsinainen tulostuskomento.
Php-ohjelman voi sijoittaa aivan sivun alkuun htmltekstien yläpuolelle. Kun html-tageja tulostetaan sivulle normaalisti, ne täytyy erotella php aloitus- ja lopetustagien ulkopuolelle. Html- ja Css-elementtejä voi tulostaa myös suoraan käyttämällä php:n echo tai print funktiota.
Esimerkki 1.3: Pieni php-tiedosto
$mj=Php-testi
; // sivun alussa
?>
echo $mj; // tulostava ohjelma body-tagien väliin
?>
1.3 Muuttujat
Rakenne ja kutsuminen
Php:n muuttuja voi sisältää jonkin merkkijonon tai jonkin php:n funktion lisäargumentteineen. Muuttuja aloitetaan aina merkillä $. Muuttujia on kolmentyyppisiä: Skaalarimuuttujat, jotka voivat sisältää vain jonkin merkkijonon. Taulukkomuuttujat muodostavat taulukon. Objektimuuttujat toimivat jonkin luokan (class) -sisällä.
Voit vapaasti luoda muuttujia miten paljon tahansa. Itse merkkijono täytyy olla lainausmerkkien tai ns. hipsujen sisällä. Tämä pätee myös tiedostonimiin.
Tiedostonimen jota tarvitset käyttää useammin, kannattaa laittaa muuttujaan merkkijonoksi. Jos merkkijonossa on pelkästään numeroita, sitä ei välttämättä tarvitse asettaa merkkijonoksi
käyttämällä lainausmerkkejä tai ns. hipsuja numerotietojen ympärillä. Muuttujan sisältö on tällöin integer-tyyppinen. (Merkkijono on string-tyyppinen).
Komentolause päätetään aina puolipisteeseen. Kommenttien käyttö skriptin seassa on suositeltavaa, jotta sen toiminnasta saa myöhemmin nopeammin selvyyttä. Kommenttiauseita voit lisätä kolmella tavalla:
Esimerkki 1.4: Kommentit
// yhden rivin kommentti
# yhden rivin kommentti
/* useamman rivin kommentin aloitus
ja lopetus merkkiin: */
?>
Esimerkki 1.5: Perusmuuttujat ja taulukkomuuttuja
$mj = Tässä on merkkijono, jossa on yksi lause
;
$mj = 'Tässä on merkkijono hipsujen sisällä';
// php:n file-funktio muuttujassa:
$fp = file(tiedosto.txt
);
// vaihtoehtoinen tapa:
$fn = tiedosto.txt
; // tiedostonimi
$fp = file($fn); // otetaan tiedoston nimen
muuttujasta $fn
echo $fp[2]; // taulukkomuuttujalla tulostetaan 3.
rivi tiedostosta
?>
Objektimuuttuja tarvitsee aina luoda ensin sitä varten olevalla skriptillä. Tästä tarkemmin oppaan 15. luvussa sivulta 145 alkaen, jossa tarkastellan PHP-luokan rakennetta.
Muuttujan nimeä voi muuttaa dynaamisesti
. Tällöin käytetään apuna { } - sulkeita.
Esimerkki 1.6: Yhdistetään muuttujanimi
$nro = 3;
$nimet{$nro} = Tässä jokin merkkijono tai toiminto
;
?>
Muuttuja voi olla myös toisen sisällä.
Esimerkki 1.7: Tulostetaan edellinen muuttuja
$tieto = Tässä on jotakin tietoa
;
$muuttuja = tieto
; // muuttujan nimi, jota halutaan
${$muuttuja}; //Muuttujan $tieto sisältö
?>
Käyttämällä pistettä voidaan muuttujia yhdistää.
Esimerkki 1.8: Matin nimi
$etunimi = Matti
;
$sukunimi = Meikäläinen
;
$kokonimi = $etunimi . $sukunimi; //Yhdistää
merkkijonot
$etunimi .= $sukunimi; //Toimii kuten edellinen
?>
Muuttujissa voi myös viitata aikaisemmin esiintyneisiin muutujanimiin. Tässä käytetään perl-kielestä tuttua &-merkkiä.
Esimerkki 1.9: Muuttujaan viittaaminen.
$foo = 'Pekka';
$bar = &$foo;
$bar = Minun nimeni on $bar
;
echo $bar;
echo $foo;
?>
Php:ssa on mahdollista tehdä muuttujista vakioita, kuten muissakin skriptikielissä. Vakioiden hyötynä on se, että usein tarvittavaa muuttujaa voidaan kutsua globaalisti koko ohjelmassa, myös aliohjelmissa. Vakion luominen onnistuu funktiolla define.
Esimerkki 1.10: Vakiomuuttujat
define(POLKU
, artikkelit/html/
);
?
Esimerkki 1.11: Käytetään const funktiota
const POLKU = 'artikkelit/html/';
Eri tiedostoissa olevat muuttujat voidaan yhdistää myös includen tai requiren avulla toimimaan samassa tiedostossa.
Tiedostoja, jotka sisällytetään sivustoon edellä mainitulla tavalla, käytetään nimitystä orjadokumentti
, koska niiden sisältöä ei näytetä irrallisena. Näiden tiedostojen päätteenä ei myöskään tarvitse olla .php vaan on suositeltavaa, että päätettäänä käytetään esimerkiksi .inc tai .tpl. Seuraavassa tulee esimerkki, kun yhdistetään kolme tiedostoa.
Esimerkki 1.12: Yhdistetään tiedostot.
// head.inc
$SYSN[title
] = Sivun otsikko!
;
$SYSN[HEADLINE
] = Isolla tekstillä
;$SYSN[FEAR
] =
Tekstikappale
;
?>
HEADLINE]?>
FEAR]?>
head.inc);?>
include(body.html
);
?>
1.4 Tulostaminen
Tulostaminen onnistuu käyttämällä funktiota print tai echo.
Esimerkki 1.13: Muuttujan tulostus.
?>
Kun tulostetaan sekä merkkijonoja, erikoismerkkejä ja muuttujia samalla kertaa, käytetään lainausmerkeissä tulostettaessa seuraavaa tapaa.
Esimerkki 1.14: Lainausmerkit
echo "Tulostan esimerkissä \"1.5\" olevan muuttujan:
$mj";
?>
Kun käytetään ns. hipsuja, merkkijono täytyy katkaista muuttujan kohdalla. Erotinmerkkinä käytetään pistettä. Tässä taas ei tarvita kenoviivoja lainausmerkin kohdalla.
Esimerkki 1.15: Merkkijonon tulostus hipsuilla
1.5 olevan
merkkijonon: '.$mj.' Ok?';?>
Myös muuttujissa oleviin merkkijonoihin täytyy soveltaa kenoviivan käyttöä, mikäli merkkijono sisältää erikoismerkkejä.
Muuttujan, joka on luotu dynaamisesti
, tulostaminen hoituu hiukan eri tavalla:
Esimerkki 1.16: Muuttujien tulostus
echo $nimet{$nro}; // esimerkissä 1.6 oleva muuttuja
echo ${$muuttuja}; // esimerkissä 1.7 oleva muuttuja
echo POLKU; // esimerkeistä 1.10 ja 1.11
?>
2. Ohjausrakenteet
2.1 Operaattorit
Ohjausrakenteilla skriptien tuloksia ohjaillaan menemään haluttuun suuntaan. Ohjausrakenteita käytetään erilaisia silmukoita ajamalla. Siihen liityvät kiinteästi vertailuoperaattorit, jotka sisältävät ehtoja siitä, mitä muuttujaa käytetään tekemään jotakin. Kun tietoa haetaan jostakin tieto-joukosta
, silmukat liittyvät kiinteästi näiden operaattorien käyttöön.
Taulukko 1: Vertailu- ja loogisia operaattoreita.
2.2 Ehtolauseet
Ehtolauseita tarvitaan ohjelman ajamisessa usein. Ehtolauseen muodostavat komennot if, elseif ja else.
Otetaan tähän sivulla 13 oleva esimerkin 1.6 kaltainen muuttuja.
Esimerkki 2.1: Tarkistetaan, onko muuttujassa mitään.
$nimet = $mj2; // tietoa muuttujasta $mj2
$nimet{$nro} = Tässä jokin merkkijono tai toiminto
;
if($nro){
echo $nimet{$nro}; // tulostetaan uusi muuttuja
}else{
echo Ohjelman ajo keskeytetty
;
return;
}
?>
Esimerkki 2.2: Tarkistetaan, onko muuttuja $nro suurempi kuin muuttuja $luku
$luku = 128;
$nro = 129;
if($nro > $luku){
echo ’Suurin luku on ’ .$nro;
}else{
echo ’Luku on ’ .$luku . ’ on suurempi tai yhtäsuuri
kuin luku ’ . $nro;
}
?>
2.3 For silmukka
Array eli taulukko on tärkeä osa php-ohjelmointia, niimpä otetaan esimerkki arrayn käsittelystä. Käytettäessä for-silmukkaa arrayn arvot ensin lasketaan count-funktiolla ja määritellän ne esim. $i-muuttujalla (tämän muuttujan nimi on vapaa), jonka alkuarvoksi asetetaan 0, eli arrayn ensimmäinen arvo. Sitä nostetaan $i++ operaattorilla.
Muuttuja [$i], joka on for-silmukassa, käy vuoron perään läpi kaikki arrayn arvot väliltä 0-4, sillä tässä arrayssa on yhteensä 5 arvoa. PHP aloittaa siis aina laskemisen nollasta.
For-silmukkaa kannattaa käyttää varsinkin monimutkaisten rakenteiden tulostamiseen, joissa foreach silmukan (ks. sivu 23) käyttö voisi aiheuttaa ristiriitoja rivien kesken.
Esimerkki 2.3: Ruokalajien tulostus
$tieto=array(omena
,päärynä
,kurkku
,
banaani
,porkkana
);
for($i=0;$i
{
echo $tieto[$i].
;
}
?>
Esimerkki 2.4: File-funktio tekee tiedoston sisällöstä taulukon.
$tieto=file(tiedosto.txt
);
for($i=0;$i
echo $tieto[$i].
;
}
?>
Arrayn sisältöä voi pilkkoa osiin. Tätä voidaan havainnollistaa käsittelemällä tiedoston sisältöä arrayna file-funktion avulla. Tiedostosta voidaan tulostaa pelkästään haluttuja osia käyttäen apuna explode-funktiota, jota käytetään uuden taulukon luomiseen merkkijonosta (tässä