10. Tekstbestanden lezen en schrijven

In PHP kan je zowel gewone als gestructureerde tekstbestanden lezen en schrijven.

10.1. Gewone tekstbestanden

PHP bevat de functie fopen() om gewone tekstbestanden te lezen en schrijven,
bv. $bestand = fopen("bestand.txt","r") or exit("Kan bestand niet openen");

De tweede parameter bepaalt de manier waarop het bestand ingelezen wordt.

ralleen lezen; leest vanaf het begin van het bestand
r+lezen/schrijven; leest vanaf het begin van het bestand
walleen schrijven; maakt het bestand als het nog niet bestaat of opent het bestaande en maakt het leeg
w+lezen/schrijven; maakt het bestand als het nog niet bestaat of opent het bestaande en maakt het leeg
aaanvullen (append); schrijft bij aan het einde van bestaand bestand of maakt een nieuw
a+lezen/aanvullen; schrijft bij aan het einde van bestaand bestand
xalleen schrijven; maakt een nieuw bestand – geeft FALSE en foutmelding als bestand al bestaat
x+lezen/schrijven; maakt een nieuw bestand – geeft FALSE en foutmelding als bestand al bestaat

Nog enkele nuttige functies in dit verband:

fclose($bestand)sluit een geopend bestand
feof($bestand)geeft boolean terug: true = einde van bestand bereikt (werkt enkel bij modus r/r+)
fgets($bestand)leest één regel uit het bestand
fgetc($bestand)leest éé karakter uit het bestand
fwrite($bestand, "inhoud")schrijft de inhoud naar het geopende bestand

10.2. XML

XML, extensable markup language, is een technologie om gegevens te beschrijven die zowel voor mensen als voor programma's "leesbaar" zijn. De gegevens worden opgeslagen onder de vorm van gestructureerde tekstbestanden, waarin elk gegeven binnen 'tags' staat, zoals in HTML.

XML is een open standaard: open want elke programmeur vindt eigen tags uit en standaard want ze werd uitgegeven door het W3C, het World Wide Web Consortium.

Zowat elke programmeertaal voorziet één of meer parsers om XML in te lezen en/of te schrijven.
Globaal zijn er twee soorten parsers:

Verder kan je vanaf PHP 5 SimpleXML gebruiken voor – juist ja, eenvoudige recht toe recht aan XML-documenten, zonder namespaces bv.

10.3. Voorbeeld met grafiek

Download om te beginnen leningen.xml (rechtsklik en doel opslaan), dat zijn de gebruikte gegevens.

Vervolgens worden die gegevens via XMLDom ingelezen, eentje getoond en de rest in een associatieve array gezet.
Die array wordt dan gebruikt om een grafiek te maken; daarvoor bevat PHP de grafische bibliotheek GD (graphics draw) waarmee dynamisch afbeeldingen gegenereerd kunnen worden.

Bekijk de PDF van lening.php, grafiek.php en het resultaat.