3. Ensimmäinen skripti 35 OPPITUNTI 3 Ensimmäinen skripti Kun olet asentanut PHP:n ja asettanut sen kokoonpanon, on aika laittaa ohjelmisto testaukseen. Tällä tunnilla luot ensimmäisen skriptisi ja tutkit hieman ohjelmointikielen syntaksia. Tunnin loputtua sinun pitäisi pystyä luomaan asiakirjoja, joissa on HTML:ää ja PHP:tä. Tämän tunnin aiheita ovat Kuinka luot, lataat ja ajat PHP-skriptejä Kuinka yhdistät HTML:ää ja PHP:tä samaan asiakirjaan Kuinka selkeytät koodiasi kommenteilla
36 3. Ensimmäinen skripti Ensimmäinen skriptimme Menkäämme nyt suoraan PHP-skriptiin. Aloita käynnistämällä haluamasi tekstieditori. Kuten HTML-asiakirjat, myös PHP-asiakirjat ovat puhdasta tekstiä. Voit luoda niitä millä tahansa editorilla, esimerkiksi Notepadilla (Muistio) Windowsissa, Simple Text -editorilla tai BBEdit-työkalulla MacOS-koneessa tai vi-ja Emacseditorilla UNIXissa. Useimmat yleisimmät HTML-editorit tukevat ainakin jollain lailla PHP:tä. Kirjoita listauksen 3.1 esimerkki, tallenna tiedosto esimerkiksi nimellä first.php. Listaus 3.1 Ensimmäinen PHP-skriptisi 1: <?php 2: print "Hello Web!"; 3:?> Kuva 3.1 näyttää skriptin kirjoitettuna BBEdit-editorilla MacOS-koneessa. Kuva 3.1 BBEdit-editorilla tehty ensimmäinen skripti. PHP-dokumentin tunniste on tärkeä, koska se kertoo palvelimelle, että sen tulee käsitellä tiedostoa PHPkoodina ja kutsua siten tulkki mukaan. PHP4-dokumentin oletustunnus on.php. Sitä voidaan kuitenkin muuttaa muuttamalla palvelimen asetuksia. Näit, kuinka se tehtiin luvussa 2, PHP:n asentaminen. Jos et toimi suoraan koneella, jossa PHP-skriptisi ajetaan, tarvitset todennäköisesti FTP-ohjelmaa, kuten esimerkiksi WS-FTP-ohjelmaa Windowsissa tai Fetch-ohjelmaa MacOS-koneessa siirtääksesi dokumenttisi palvelimelle. Kun dokumentti on paikallaan, sinun tulisi pystyä saamaan se esille selaimen kautta. Jos kaikki on mennyt oikein, tuloksena pitäisi olla skriptin tuottama tuloste. Kuva 3.2 esittää ensimmäisen skriptimme tuottamaa tulosta. Kuva 3.2 Onnistui: listauksen 3.1 tulostus.
3. Ensimmäinen skripti 37 Jos PHP:tä ei ole asennettu palvelimellesi tai tiedostosti tunnusta ei tunnisteta, ei kuvan esittämää tulosta synny. Tällöin esille tulee luultavasti tiedostossa oleva koodi. Kuva 3.3 esittää tilannetta, jossa tiedoston tunnistetta ei tunnistettu. Jos tällaista tapahtuu, tarkista ensin tiedoston tyyppi. Kuvassa 3.3 tiedoston nimeksi oli vahingossa laitettu first.nphp. Jos tiedoston tunnus on kuitenkin oikein, sinun tulee tarkistaa, onko PHP asennettu oikein ja palvelimesi asetuksissa hyväksytään käyttämäsi tiedostotunnus. Kuva 3.3 Epäonnistuminen: tarkenninta ei tunneta. Voit lukea lisää asentamisesta ja kokoonpanon asettamisesta luvusta 2. Nyt, kun olet siirtänyt tiedoston palvelimelle ja testannut skriptisi, voimmekin siirtyä tutkimaan koodia tarkemmin. PHP-ohjelmalohkojen alku ja loppu Kun kirjoitat PHP-koodia, sinun on kerrottava tulkille, että haluat tulkin suorittavan komentosi. Jos et tee niin, koodiasi pidetään HTML-koodina ja se tulostetaan selaimella. Taulukko 3.1 esittää eri tavat kapseloida PHPkoodi. Taulukko 3.1 PHP-lohkon alku- ja lopputagit Tagin tyyli Aloitustagi Lopetustagi Standarditagi <?php?> Lyhyt tagi <??> ASP-tagi <% %> Skriptitagi <SCRIPT LANGUAGE="php"> </SCRIPT> Taulukon 3.1 tageista vain standardi- ja skriptitagit toimivat takuuvarmasti kaikilla kokoonpanoilla. Lyhyet ja ASP-tyyliset tagit on otettava erikseen huomioon php.ini-tiedostossa. Tutkimme tuota asetustiedostoa luvussa 2. Aktivoidaksesi tunnistuksen lyhyille tageille sinun on varmistettava, että short_open_tag-kytkin on asetettu päälle: short_open_tag = On;
38 3. Ensimmäinen skripti Lyhyet tagit ovat oletuksena päällä, joten sinun tulee muokata vain php.ini-tiedostoa, jos haluat ne pois päältä. Aktivoidaksesi ASP-tyyliset tagit sinun on asetettavat päälle asp_tags-asetus: asp_tags = On; Kun olet muokannut php.ini-tiedostoa, sinun tulisi pystyä käyttämään mitä tahansa taulukossa mainittua tagia. Käytössä tulee ottaa huomioon kehitysolosuhteet: jos aiot työskennellä XML-kielellä, sinun tulee ottaa lyhyet tagit (<??>) pois päältä ja käyttää pelkästään standarditageja (<?php?>). Katsokaamme nyt joitakin hyväksyttäviä tapoja kirjoittaa listauksen 3.1 koodi. Voit käyttää mitä tahansa neljästä aloitus- ja lopetustagiparista: <? print("hello Web!");?> <?php print("hello Web!");?> <% print("hello Web!"); %> <SCRIPT LANGUAGE="php"> print("hello Web!"); </SCRIPT> Yksittäiset PHP-koodirivit voidaan sijoittaa samalle riville kuin aloitus- ja lopetustagit: <? print("hello Web!");?> Nyt, kun osaat määrittää PHP-ohjelmalohkon, tutkikaamme tarkemmin listauksen 3.1 koodia. print()-funktio Funktio print() tulostaa tietoa. Useimmiten tulostaminen tapahtuu selainikkunassa. Funktio on komento, joka suorittaa toiminnon. Toiminto kohdistuu usein tietoon, joka funktiolle toimitetaan. Funktiolle viety tieto asetetaan funktion nimen perässä olevien sulkumerkkien sisälle. Tässä tapauksessa print()-funktiolle viedään joukko merkkejä eli merkkijono. Merkkijonot tulee laittaa lainausmerkkeihin tai heittomerkkeihin.
3. Ensimmäinen skripti 39 Funktion kutsu vaatii aina sulkumerkkien käyttöä vietiinpä funktiolle tietoa tai ei. Käsittelemämme print() on kuitenkin poikkeustapaus, koska sen kohdalla sulkumerkkien käyttäminen on valinnaista. Sulkumerkkien poisjättäminen on yleinen käytäntö print()-funktion kohdalla, joten niitä ei käytetä kirjan esimerkeissäkään. Päätit listauksen 3.1 ainoan koodirivisi puolipisteeseen. Puolipiste informoi tulkkia siitä, että ohjelmalause on päättynyt. Ohjelmalause edustaa tulkille ohjetta. Tuo ohjelmalause on PHP:lle sama kuin äidinkielellä kirjoitettu tai puhuttu lause meille ihmisille. Ohjelmalauseen tulee yleensä päättyä puolipisteeseen; kirjoitettu lause päättyy useimmiten pisteeseen. Poikkeuksena ovat sijoituslauseet, jotka sisältävät muita ohjelmalauseita ja ohjelmalauseet, jotka päättävät koodilohkon. Useimmiten puolipisteen virheellinen poisjättäminen sotkee tulkkia ja saa aikaan virheen. Koska listauksen 3.1 ohjelmalause on ainoa koodilohkon lause, puolipiste on valinnainen. HTML:n ja PHP:n yhdistäminen Listauksen 3.1 skripti on puhdasta PHP-koodia. Voit kuitenkin sijoittaa tuohon tiedostoon HTML:ää erottamalla PHP-lohkon aloitus- ja lopetustageilla, kuten listaus 3.2 osoittaa. LISTAUS 3.2 PHP-skripti, joka sisältää HTML:ää 1: <html> 2: <head> 3: <title>listing 3.2 A PHP script including HTML</title> 4: </head> 5: <body> 6: <b> 7: <?php 8: print "hello world"; 9:?> 10: </b> 11: </body> 12: </html>
40 3. Ensimmäinen skripti Kuten huomaat, HTML:n yhdistäminen PHP-dokumenttiin on yksinkertaista. PHP-tulkki ohittaa kaiken, mikä on PHP-lohkon ulkopuolella. Jos otat listauksen 3.2 dokumentin esille selaimellesi, esille tulee merkkijono "hello world'' lihavoituna, kuten kuva 3.4 näyttää. Lähdekoodi on aivan samanlaista kuin tavallisessa HTMLdokumentissa, kuten kuva 3.5 näyttää. Voit sijoittaa yksittäiseen dokumenttiin niin monta PHP-lohkoa kuin haluat ja mukana voi olla haluamaasi HTML-koodia. Vaikka voitkin sijoittaa useita koodilohkoja samaan dokumenttiin, ne muodostavat yhden yksittäisen skriptin. Kaikki, mikä esitetään ensimmäisessä lohkossa (esimerkiksi muuttujat, funktiot ja luokat), on tavallisesti alempien lohkojen käytettävissä. KUVA 3.4 Listauksen 3.2 tulostus selaimella. KUVA 3.5 Listauksen 3.3 HTMLkoodi. Kommenttien lisääminen PHP-koodiin Koodi saattaa näyttää hyvinkin selvältä kirjoitettaessa, mutta kun palaat siihen parin kuukauden kuluttua, se saattaa näyttää toivottoman vaikeaselkoiselta. Kommenttien lisääminen koodiin voi säästää aikaa myöhemmin ja helpottaa muiden ohjelmoijien työskentelyä koodilla. Kommentti on teksti, jonka tulkki ohittaa. Kommenteilla voidaan tehdä koodi luettavammaksi tai selittämään skriptiä.
3. Ensimmäinen skripti 41 Yhdelle riville tuleva kommentti aloitetaan kauttaviivaparilla (//) tai risuaitamerkillä (#). Kaikki noiden merkkien perässä oleva teksti on rivin loppuun saakka tulkin ohittamaa selitystekstiä. // tämä on kommentti # tämä on toinen kommentti Usealle riville tulevat kommentit aloitetaan kauttaviivalla, jota seuraa asteriksi (/*), ja päätetään asteriskilla ja kauttaviivalla (*/). /* tämä on kommentti; näitä rivejä ei jäsennellä tulkin toimesta */ Yhteenveto Nyt sinulla pitäisi olla työkaluja voidaksesi ajaa yksinkertaisen PHP-skriptin toimivalla palvelimella. Tällä tunnilla loit ensimmäisen PHP-skriptisi. Opit käyttämään tekstieditoriasi PHP-dokumentin luomiseen ja tallentamiseen. Tutkimme aluksi neljää tagiparia, joita voidaan käyttää erottamaan PHP-koodilohko asiakirjasta. Esimerkeissämme käytimme print()-funktiota, joka tulostaa tietoa selainikkunaan. Näit myös, kuinka samaan dokumenttiin voidaan sijoittaa HTML:ää ja PHP-koodia. Luvun lopussa sait tietoa kommenteista ja niiden lisäämisestä PHP-dokumentteihin. K&V K Mitä aloitus- ja lopetustageja on parasta käyttää? V Kyseessä on makuasia. Siirrettävyyden takaamiseksi kannattaa käyttää standarditageja (<?php?>). Lyhyet tagit ovat oletuksena ja niitä tuetaan laajasti. K Mitä editoreja kannattaa välttää luotaessa PHP-koodia? V Älä käytä tekstinkäsittelyohjelmia (esimerkiksi Wordia), jotka sallivat muotoilun. Vaikka tallennatkin dokumenttisi puhtaana tekstinä, saattavat kätketyt ohjaus- ja muotoilumerkit hiipiä dokumenttiisi.
42 3. Ensimmäinen skripti K Milloin minun kannattaa kommentoida koodini? B Kyseessä on taaskin makuasia. Jotkut skriptit selittävät itse itsensä ja ne on helppo ymmärtää pitkänkin ajan kuluttua. Jos skriptit kuitenkin ovat laajempia tai monimutkaisempia, ne kannattaa kommentoida. Kommenttien avulla säästät myöhemmin aikaa ja vaivaa. Työpaja Työpaja tarjoaa pikakysymyksiä, joiden avulla voit kerrata läpikäytyä materiaalia. Yritä ymmärtää vastaukset ennen kuin jatkat seuraavaan lukuun. Vastaukset annetaan liitteessä A. Kysymyksiä 1. Voiko käyttäjä lukea PHP-skriptisi lähdekoodia? 2. Millainen on standardi PHP-erotintagi? 3. Miltä ASP-tyylinen erotintagi näyttää? 4. Miltä skriptityylinen erotintagi näyttää? 5. Millä funktiolla voidaan tulostaa merkkijono selaimella? Toiminta 1. Tutustu tarkemmin prosessiin, jossa luot, siirrät ja ajat PHP-skriptejä.