Hoofdstuk 9: Strings & Datums

← Terug naar overzicht

String-functies

PHP heeft veel ingebouwde functies om strings (tekst) te bewerken. Dit zijn de belangrijkste:

<?php
$naam = "  jan de vries  ";
$schoon = trim($naam);           // "jan de vries"
$hoofd = strtoupper($schoon);    // "JAN DE VRIES"
$lengte = strlen($schoon);       // 12
$eerste = substr($schoon, 0, 3); // "jan"
?>

Let op: In de oefeningen hieronder hoef je GEEN <?php en ?> tags te typen. Het platform regelt dit automatisch. Je typt alleen de PHP-code zelf.

Oefening 1

Maak een variabele $naam met de waarde " jan " en gebruik trim() om de spaties te verwijderen. Sla het resultaat op in $schoneNaam en toon het met echo.

Jouw code:

Oefening 2

Maak een variabele $stad met de waarde "amsterdam" en maak alle letters hoofdletters met strtoupper(). Toon het resultaat met echo.

Jouw code:

Oefening 3

Maak een variabele $titel met de waarde "WELKOM OP MIJN WEBSITE" en maak alle letters kleine letters met strtolower(). Toon het resultaat.

Jouw code:

Oefening 4

Maak een variabele $voornaam met de waarde "pieter" en maak de eerste letter een hoofdletter met ucfirst(). Toon het resultaat.

Jouw code:

Oefening 5

Maak een variabele $wachtwoord met de waarde "Geheim123" en toon de lengte ervan met strlen().

Jouw code:

Oefening 6

Maak een variabele $zin met de waarde "PHP is geweldig" en knip de eerste 3 tekens eruit met substr(). Toon het resultaat.

Jouw code:

Oefening 7

Maak een variabele $tekst met de waarde "Hallo Wereld". Gebruik substr() om het woord "Wereld" eruit te halen (start bij positie 6) en toon het resultaat.

Jouw code:

Oefening 8

Schrijf een functie schoonNaamOp($naam) die een naam opschoont: eerst trim(), dan strtolower(), dan ucfirst(). De functie geeft het resultaat terug. Test met echo schoonNaamOp(" jANNEKE "); — dit moet "Janneke" tonen.

Jouw code:

Oefening 9

Maak een variabele $artikel met de waarde "Dit is een heel lang artikel over PHP programmeren en webontwikkeling". Maak een teaser door de eerste 30 tekens te pakken met substr() en er "..." achter te plakken. Toon het resultaat.

Jouw code:

Zoeken & Vervangen

Met strpos() kun je zoeken waar een stuk tekst voorkomt in een string. Met str_replace() kun je tekst vervangen.

<?php
$zin = "Ik hou van PHP en PHP is leuk";
$positie = strpos($zin, "PHP");      // 11
$nieuw = str_replace("PHP", "JavaScript", $zin);
// "Ik hou van JavaScript en JavaScript is leuk"
?>

Let op: strpos() geeft false terug als de tekst niet gevonden is. Gebruik !== false om dit te controleren, want positie 0 is ook een geldige positie!

Oefening 1

Maak een variabele $tekst met de waarde "Welkom bij PHP". Gebruik strpos() om de positie van "PHP" te vinden en toon het resultaat.

Jouw code:

Oefening 2

Maak een variabele $email met de waarde "jan@voorbeeld.nl". Controleer met strpos() of er een "@" in zit. Als dat zo is, toon "Geldig formaat", anders "Ongeldig formaat".

Jouw code:

Oefening 3

Maak een variabele $bericht met de waarde "De kat zit op de mat". Vervang "kat" door "hond" met str_replace() en toon het resultaat.

Jouw code:

Oefening 4

Maak een variabele $url met de waarde "mijn eerste blog post". Vervang alle spaties door streepjes ("-") met str_replace() en toon het resultaat. Dit maakt een URL-vriendelijke slug.

Jouw code:

Oefening 5

Schrijf een functie bevat($tekst, $zoekwoord) die true teruggeeft als $zoekwoord in $tekst voorkomt, anders false. Test met: als bevat("Ik leer PHP", "PHP") waar is, toon "Gevonden!".

Jouw code:

Oefening 6

Maak een variabele $reactie met de waarde "Dit is een stom bericht". Maak een array $scheldwoorden met de waarden "stom", "dom", "lelijk". Gebruik een foreach-loop en str_replace() om elk scheldwoord te vervangen door "***". Toon het opgeschoonde bericht.

Jouw code:

Oefening 7

Schrijf een functie maakSlug($titel) die een titel omzet naar een URL-slug: eerst strtolower(), dan spaties vervangen door "-" met str_replace(). Test met echo maakSlug("Mijn Eerste Blog Post"); — dit moet "mijn-eerste-blog-post" tonen.

Jouw code:

Oefening 8

Maak een variabele $bestandsnaam met de waarde "foto_vakantie.jpg". Gebruik strpos() om de positie van het punt (".") te vinden. Gebruik daarna substr() om de extensie (alles na het punt) op te halen en toon "Extensie: jpg".

Jouw code:

Datum & Tijd

PHP heeft krachtige functies voor datums en tijden:

Veelgebruikte formaattekens voor date():

| Teken | Betekenis | Voorbeeld |

|-------|-----------|-----------|

| d | Dag (met voorloopnul) | 01-31 |

| m | Maand (met voorloopnul) | 01-12 |

| Y | Jaar (4 cijfers) | 2026 |

| H | Uur (24-uurs) | 00-23 |

| i | Minuten | 00-59 |

| s | Seconden | 00-59 |

| l | Dag van de week (voluit) | Monday |

| F | Maand (voluit) | January |

<?php
echo date("d-m-Y");      // bijv. "24-03-2026"
echo date("H:i:s");      // bijv. "14:30:05"
echo date("l d F Y");    // bijv. "Tuesday 24 March 2026"
?>

Oefening 1

Toon de huidige datum in het formaat "d-m-Y" (dag-maand-jaar). Gebruik date().

Jouw code:

Oefening 2

Toon de huidige tijd in het formaat "H:i:s" (uur:minuten:seconden).

Jouw code:

Oefening 3

Toon alleen het huidige jaar met date().

Jouw code:

Oefening 4

Maak een variabele $uur met het huidige uur (als getal) met behulp van date("H"). Controleer of het uur kleiner is dan 12. Zo ja, toon "Goedemorgen!", anders toon "Goedemiddag!".

Jouw code:

Oefening 5

Maak een copyright-regel door echo te gebruiken met het huidige jaar: het resultaat moet zijn "© 2026 MijnBedrijf" (waarbij 2026 dynamisch is via date("Y")).

Jouw code:

Oefening 6

Toon het huidige Unix-timestamp met time() en toon daarna op een nieuwe regel de huidige datum in het formaat "Y-m-d H:i:s".

Jouw code:

Oefening 7

Schrijf een functie nederlandseDag() die de huidige Engelse dagnaam ophaalt met date("l") en met een switch-statement de Nederlandse vertaling teruggeeft. Vertaal: Monday=Maandag, Tuesday=Dinsdag, Wednesday=Woensdag, Thursday=Donderdag, Friday=Vrijdag, Saturday=Zaterdag, Sunday=Zondag. Test met echo nederlandseDag();.

Jouw code:

Oefening 8

Schrijf een functie artikelTeaser($tekst, $lengte) die een teaser maakt van een artikel. Als de tekst langer is dan $lengte, knip dan af op $lengte tekens en plak "..." erachter. Is de tekst korter of gelijk, geef de tekst ongewijzigd terug. Test met echo artikelTeaser("Dit is een heel lang verhaal over programmeren in PHP", 20);.

Jouw code:

Oefening 9

Schrijf een functie volledigeDatum() die de huidige datum teruggeeft in het formaat: "Dinsdag 24 maart 2026 om 14:30". Gebruik nederlandseDag() (die je ook moet schrijven met een switch op date("l")) en een array $maanden om de Engelse maandnaam te vertalen. Gebruik date("d") voor de dag, date("F") voor de Engelse maand, date("Y") voor het jaar en date("H:i") voor de tijd.

Jouw code:

Samenvatting

In dit hoofdstuk heb je geleerd: