Kirjautuminen

Tunnus
Salasana

Haku

Tehtävät

Datatähti 2015

Datatähti on peruskoulun ja lukion ohjelmointikilpailu, jonka alkukilpailu on käynnissä 29.9–12.10. Lue lisää...

Oppaat: PHP-ohjelmointi: Osa 1 - Johdanto

  1. Osa 1 - Johdanto
  2. Osa 2 - Muuttujat
  3. Osa 3 - if-rakenne
  4. Osa 4 - for-silmukka
  5. Osa 5 - Taulukot
  6. Osa 6 - Lomakkeet
  7. Osa 7 - Nettisivusto
  8. Osa 8 - Lisää silmukoista
  9. Osa 9 - Tiedostot
  10. Osa 10 - Omat funktiot
  11. Osa 11 - Istunnot
  12. Osa 12 - Tietokannat
  13. Osa 13 - Tietoturva
  14. Osa 14 - Olio-ohjelmointi
  15. Osa 15 - Kuvien luonti
  16. Osa 16 - Säännölliset lausekkeet
  17. Osa 17 - Merkistöt
  18. Osa 18 - PHP:n ongelmat

Kirjoittaja: Antti Laaksonen. Vuosi: 2011.

PHP on suosittu nettisivujen toteutukseen tarkoitettu ohjelmointikieli. PHP-koodi suoritetaan palvelimella ennen nettisivun lähettämistä selaimelle, minkä ansiosta PHP ei vaadi tukea selaimelta ja sillä voi käsitellä esimerkiksi palvelimen tiedostoja ja tietokantoja. PHP:n vahvuuksia ovat helppokäyttöisyys ja monipuolisuus, minkä lisäksi se on käytettävissä useimmissa edullisissa webhotelleissa.

Tämän opassarjan tarkoituksena on antaa lukijalle perustiedot PHP-ohjelmoinnista. Oletuksena on, että lukijalla on kokemusta nettisivujen tekemisestä HTML-kielellä. Oppaiden lukeminen ei vaadi aiempaa ohjelmointitaustaa, mutta ennakkotiedot ohjelmoinnista auttavat paljon PHP:n opettelussa. Toisaalta PHP on myös mainio valinta ensimmäiseksi ohjelmointikieleksi. Opassarjan esimerkit toimivat kaikilla PHP 5:n versioilla.

PHP:n käyttäminen

PHP:n käyttäminen vaatii palvelimen, jossa on mahdollista suorittaa PHP-koodia. Nykyään PHP:tä voi käyttää lähes kaikissa edullisissa webhotelleissa.

PHP-koodia voi testata myös omalla kotikoneella, kunhan asentaa sopivan palvelinympäristön. Helppo tapa asentaa tarvittavat ohjelmat on kopioida XAMPP-paketti. Ohjelmointiputkassa on kuvitettu ohje XAMPP:n asentamisesta Windows-järjestelmään.

Ensimmäinen PHP-sivu

Seuraavassa on ensimmäinen PHP-sivumme:

<!DOCTYPE html>
<html>
  <head>
    <title>Ensimmäinen PHP-sivu</title>
  </head>
  <body>
    <p>Vuorokaudessa on <?php echo 24 * 60 * 60; ?> sekuntia.</p>
    <p>Tänään on <?php echo date("j.n.Y"); ?>.</p>
    <p>Palvelimella on PHP:n versio <?php echo PHP_VERSION; ?>.</p>
    <?php
    echo "<ul>";
    for ($i = 1; $i <= 10; $i++) {
        echo "<li>" . $i;
    }
    echo "</ul>";
    ?>
  </body>
</html>

Kokeile koodia

PHP-sivu on muodoltaan samanlainen kuin HTML-sivu. Erona on, että tiedoston pääte on .php eikä .html ja sivun osana voi olla PHP-koodia, joka on merkintöjen <?php ja ?> välissä. Palvelin käsittelee PHP-koodin ennen sivun lähettämistä käyttäjälle, jolloin lopputuloksena sivulla on pelkkää HTML-koodia.

Voit kokeilla yllä olevaa koodia Ohjelmointiputkan palvelimella painamalla koodin alapuolella olevasta linkistä. Voit myös kokeilla koodia omalla palvelimellasi tallentamalla koodin esimerkiksi tiedostoon eka.php ja siirtämällä tiedoston palvelimelle.

Koodin tuloksena on seuraavanlainen HTML-sivu:

<!DOCTYPE html>
<html>
  <head>
    <title>Ensimmäinen PHP-sivu</title>
  </head>
  <body>
    <p>Vuorokaudessa on 86400 sekuntia.</p>
    <p>Tänään on 19.8.2011.</p>
    <p>Palvelimella on PHP:n versio 5.1.4.</p>
    <ul><li>1<li>2<li>3<li>4<li>5<li>6<li>7<li>8<li>9<li>10</ul>
  </body>
</html>

Ensimmäinen PHP-osuus laskee laskun 24 * 60 * 60 ja tulostaa vastauksen sivulle. Seuraavat PHP-osuudet tulostavat päivämäärän ja PHP:n version sivulle. Viimeinen PHP-osuus tulostaa listan, joka sisältää luvut 1–10. Tässä vaiheessa ei ole tärkeää ymmärtää kaikkea käytetystä PHP-koodista, vaan palaamme asioihin opassarjan kuluessa.

Tulostaminen

PHP:n komennot echo ja print tulostavat tekstiä sivulle. Komento echo on ehkä yleisempi, mutta voit käyttää kumpaa tahansa, koska toiminta on sama.

Teksti kirjoitetaan lainausmerkkien ("") tai heittomerkkien ('') sisään:

<?php
echo "<p>Tervetuloa!</p>";
echo '<p>Tässä on hieman tekstiä.</p>';
?>

Tämän koodin tulostus on seuraava:

<p>Tervetuloa!</p><p>Tässä on hieman tekstiä.</p>

Huomaa, että kaikki teksti tulee samalle riville, vaikka koodissa on kaksi echo-komentoa. Tämä ei ole kuitenkaan ongelma, koska rivinvaihdoilla ei ole yleensä merkitystä HTML:ssä. Jos jostain syystä haluaisimme rivinvaihdon tekstiin, voisimme käyttää merkintää \n.

Kokonaisluvut ja desimaaliluvut merkitään sellaisenaan PHP-koodiin. Jos luvussa on desimaaliosa, erottimena on desimaalipiste englannin kielen mallin mukaisesti. Luvuilla voi laskea tavalliseen tapaan: käytössä ovat mm. laskutoimitukset +, -, * ja / sekä sulut.

Esimerkiksi seuraava koodi tulostaa sivulle luvun 16:

<?php
echo 2 * (5 + 3);
?>

Kommentointi

PHP-koodin osana voi olla kommentteja, jotka eivät vaikuta koodin toimintaan vaan selventävät jotain asiaa koodin lukijalle. Merkintä // tuottaa yksirivisen kommentin, ja merkinnät /* ja */ tuottavat monirivisen kommentin. Seuraava koodi havainnollistaa asiaa:

<?php
// yksirivinen kommentti

/* tämä kommentti jakaantuu
   kahdelle riville */
?>

Käytännössä kommenttia voisi käyttää esimerkiksi näin:

<?php
echo 7 * 24; // viikon tuntien määrä
?>

PHP-koodin rakenne

HTML-koodissa pienet virheet eivät usein haittaa, koska selaimet pyrkivät tulkitsemaan virheitä sisältävän koodin jollakin järkevällä tavalla. PHP-koodissa tilanne on toinen: koodin täytyy olla täysin oikein kirjoitettu, jotta se toimii halutulla tavalla. Tämän vuoksi PHP:n opettelussa kannattaa alusta alkaen kiinnittää huomiota koodin yksityiskohtiin.

Perusperiaate PHP:ssä on, että koodi muodostuu komennoista, jotka suoritetaan järjestyksessä ylhäältä alaspäin. Komentojen perässä on puolipiste (;), ja kukin komento kirjoitetaan yleensä omalle rivilleen. Opassarjan edetessä tutustumme pikkuhiljaa erilaisten komentojen merkintätapaan.

PHP:n manuaali

PHP:n manuaali on täydellinen kuvaus PHP-kielestä ja tärkeä ohjelmoijan tietolähde PHP:n perusasioiden opettelun jälkeen.


Kommentit

Jermakovi [29.09.2011 19:16:18]

Lainaa #

Mitenkäs saisi nuo daten nimet käännettyä suomeksi?

Esim.

<?php echo date("l"); ?>

tulostaa Thursday. Mutta miten saisi tuon suomeksi.... jokin muuttuja?

Le-Co-Las [01.12.2011 10:46:04]

Lainaa #

Mahtavaa, Antti!!!

Clacier [01.12.2011 20:28:10]

Lainaa #

Jermakovi kirjoitti:

Mitenkäs saisi nuo daten nimet käännettyä suomeksi?

Esim.

<?php echo date("l"); ?>

tulostaa Thursday. Mutta miten saisi tuon suomeksi.... jokin muuttuja?

Oma ratkaisuni olisi:

<?php
$date = date(l);
$en = array("Monday", "Tuesday", "jne..");
$fi = array("Maanantai", "Tiistai", "jne..");
$viikonpaiva = str_replace($englanniksi, $suomeksi, $date);
print 'Tänään on ' . $viikonpaiva . '.<br />';
?>

Sob1 [02.12.2011 19:53:16]

Lainaa #

Todella opettavainen sivusto tämä Putka, kiitos Antti :)

Matias [01.07.2014 20:27:13]

Lainaa #

Hyvä ja monipuolinen opas!

Kirjoita kommentti

Huomio! Kommentoi tässä ainoastaan tämän oppaan hyviä ja huonoja puolia. Älä kirjoita muita kysymyksiä tähän. Jos koodisi ei toimi tai tarvitset muuten vain apua ohjelmoinnissa, lähetä viesti keskusteluun.

Muista lukea keskustelun ohjeet.
Tietoa sivustosta