PHP - Wat kun je ermee? Deel 2.
De citaten staan allemaal in een tekstbestand, op elke regel staat een citaat, ook de persoon waarvan het citaat is staat in de textfile. We scheiden het citaat en de naam van de persoon door een * (sterretje/asteriks).
Om de citaten in een tekstbestand te zetten gebruik je gewoon notepad, je kunt de volgende citaten gebruik of er zelf een paar verzinnen.
Elk voordeel heb zijn nadeel*Johan Cruijff
PHP rulez*Dennis van der Vliet
Zorg er wel voor dat je na elke citaat een enter geeft. Sla dit bestand op als "citaat.dat" in dezelfde directory als waar je later je citaat script wil gaan maken.
Ok maak nu een bestand "citaat.php" aan in diezelfde directory. Plaats hierin de volgende code:
<?
srand((double)microtime()*1000000);
$citaat=file("citaat.dat");
$nummer=rand(0, count($citaat)-1);
print ("$citaat[$nummer]");
?>
Als je dit bestand nu opslaat en opvraagt in je browser (je webserver moet natuurlijk ook aan staan!), dan zul je elke keer één van de twee citaten zien staan. Ik zal nu gaan uitleggen hoe het script werkt.
srand((double)microtime()*1000000);
Omdat je elke keer een ander citaat wilt, en deze ook graag in willekeurige volgorde, heb je een zogenaamd random-getal nodig. Een random-getal is een willekeurig gekozen getal, een beetje hetzelfde als gooien met een dobbelsteen dus. Bij PHP moet je aan het begin van je script aangeven dat je een random-getal in je script wil gaan gebruiken. Dat doen wij in de eerste regel.
$citaat=file("citaat.dat");
Deze regel leest het bestand met alle citaten erin, in als array. Wat een array is? Een array is een grote lijst met getallen en/of letters. Deze staan niet zomaar door elkaar. Deze zijn allemaal netjes geordend in de array. Zo'n deel van een array heet ook wel een element van een array. Door het bestand op deze manier in te lezen, kun je de eerste regel van het bestand "citaat.dat" laten afdrukken door het commando: print ("$citaat[0]"); En met: print ("$citaat[1]"); geef je de tweede regel weer.
$nummer=rand(0, count($citaat)-1);
Hiermee maak je het eigenlijke random-getal. Omdat zoals eerder gezegd, de eerste regel van "citaat.dat" kan worden aangeroepen als: $citaat[0], moet het random getal altijd groter zijn dan 0, maar het moet ook weer kleiner zijn dan het maximaal aantal regels in "citaat.dat". Dit is precies wat deze regel doet. Je geeft namelijk gewoon de opdracht een getal te selecteren tussen de 0, en het aantal elementen in de array min 1. Het aantal elementen in de array krijg je met de opdracht:
count($citaat);
Waarom mag het grootste getal dan niet groter zijn dan het aantal elementen van de array min 1? Het eerste element van de array heeft altijd als zogenaamd "identifier" 0. Als je dit dus niet zou doen, zou je een citaat kun selecteren dat helemaal niet in de array zit.
print ("$citaat[$nummer]");
Dit is de laaste regel, en eigenlijk ook de enige regel waar wij uiteindelijk wat van zien. Deze regel print het element van de array "$citaat" waarvan de "identifier" gelijk is aan "$nummer".
Probeer het maar eens uit en speel er wat mee. Zo leer je het snelste ermee werken!
Have fun!
--------------------------------------------------------------------------------------------------------
Dit was deel 2 van "PHP: een handleiding" door Dennis van der Vliet. Het artikel kwam tot stand door samenwerking met www.phpfreakz.nl. Een website waar je alles kunt vinden over PHP. Zeer de moeite waard om hen eens te bezoeken!


