Bestanden schrijven/lezen
1 bericht
• Pagina 1 van 1
Bestanden schrijven/lezen
Inleiding
Databases zijn handig, maar soms is het handiger om gegevens in een bestand op te slaan. Dit is ook handig wanneer je niet beschikt over een database. In dit artikel ga ik uitleggen hoe je gegevens naar een bestand kunt schrijven en het ook weer uitlezen.
Bestand openen
Om een bestand te openen gebruiken we de volgende code.
PHP
Je ziet dat we de functiefopen() gebruiken. Deze functie bevat twee parameters. De eerste is de naam van het bestand. Met de tweede parameter geven we aan wat we met het bestand willen doen. We hebben zes opties:
Gegevens naar een bestand schrijven
Om gegevens naar een bestand te schrijven moet we eerst het bestand openen. Vervolgens kunnen we de gegevens wegschrijven waarna we het bestand weer sluiten.
Stel ons bestand (gegevens.txt) heeft de volgende inhoud:
Eerst laat ik zien hoe je een regel toevoegt:
PHP
Dit heeft als resultaat dat gegevens.txt er als volgt uit ziet:
Bestand uitlezen
We willen de gegevens ook uitlezen en weergeven. Daarvoor dienen we het bestand te openen, uit te lezen en vervolgens weer te sluiten. Wanneer we het bestand willen uitlezen gebruiken we de functiefread . Deze bevat, net als fopen() en fputs() , twee parameters. De eerste parameter is de naam van het geopende bestand (in ons geval $openbestand ). Met de tweede parameter bepaal je hoeveel bytes er uitgelezen moeten worden. Wanneer we het hele bestand willen uitlezen gebruiken we de functie filesize() hiervoor.
PHP
Dit heeft als resultaat dat het volgende weergegeven wordt.
Voorbeelden wegschrijven
Een voorbeeld van wegschrijven, inclusief controles.
PHP
Voorbeelden uitlezen
Een voorbeeld van uitlezen, inclusief controles.
PHP
Databases zijn handig, maar soms is het handiger om gegevens in een bestand op te slaan. Dit is ook handig wanneer je niet beschikt over een database. In dit artikel ga ik uitleggen hoe je gegevens naar een bestand kunt schrijven en het ook weer uitlezen.
Bestand openen
Om een bestand te openen gebruiken we de volgende code.
PHP
- Code: Alles selecteren
<?php
$bestand = "gegevens.txt";
$openbestand = fopen($bestand, "a");
?>
Je ziet dat we de functie
- r : Openen voor alleen lezen; plaats de bestandspointer aan het begin van het bestand.
- r+ : Openen voor lezen en schrijven; plaats de bestandspointer aan het begin van het bestand.
- w : Openen voor alleen schrijven; plaats de bestandspointer aan het begin van het bestand en maak het bestand 0 bytes lang. Als het bestand niet bestaat, probeer het aan te maken.
- w+ : Openen voor lezen en schrijven; plaats de bestandspointer aan het begin van het bestand en maak het bestand 0 bytes lang. Als het bestand niet bestaat, probeer het aan te maken.
- a : Openen voor alleen schrijven; plaats de bestandspointer aan het einde van het bestand. Als het bestand niet bestaat, probeer het aan te maken.
- a+ : Openen voor lezen en schrijven; plaats de bestandspointer aan het einde van de file. Als het bestand niet bestaat, probeer het aan te maken.
Gegevens naar een bestand schrijven
Om gegevens naar een bestand te schrijven moet we eerst het bestand openen. Vervolgens kunnen we de gegevens wegschrijven waarna we het bestand weer sluiten.
Stel ons bestand (gegevens.txt) heeft de volgende inhoud:
hier tekst
hier tekst 2
hier tekst 3
Eerst laat ik zien hoe je een regel toevoegt:
PHP
- Code: Alles selecteren
<?php
$bestand = "gegevens.txt";
// Tekst die toegevoegd moet worden. \n om de tekst op een nieuwe regel te zetten
$tekst = "\nhier tekst 4";
// Bestand openen voor alleen schrijven (toevoegen) > a
$openbestand = fopen($bestand, "a");
// Gegevens schrijven
fputs($openbestand, $tekst);
// Bestand sluiten
fclose($openbestand);
?>
Dit heeft als resultaat dat gegevens.txt er als volgt uit ziet:
hier tekst
hier tekst 2
hier tekst 3
hier tekst 4
Bestand uitlezen
We willen de gegevens ook uitlezen en weergeven. Daarvoor dienen we het bestand te openen, uit te lezen en vervolgens weer te sluiten. Wanneer we het bestand willen uitlezen gebruiken we de functie
PHP
- Code: Alles selecteren
<?php
$bestand = "gegevens.txt";
// Bestand openen voor alleen lezen > r
$openbestand = fopen($bestand, "r");
// Gegevens uitlezen en in een variabele zetten
$gegevens = fread($openbestand, filesize($bestand));
// Bestand sluiten
fclose($openbestand);
// Gegevens weergeven
echo $geg;
?>
Dit heeft als resultaat dat het volgende weergegeven wordt.
hier tekst hier tekst 2 hier tekst 3 hier tekst 4
Voorbeelden wegschrijven
Een voorbeeld van wegschrijven, inclusief controles.
PHP
- Code: Alles selecteren
<?php
//////////////////////////////
// Gegevens wegschrijven
//////////////////////////////
$bestand = "gegevens.txt";
// Bestaat het bestand?
if(!file_exists($bestand))
{
echo "Het bestand bestaat niet";
}
else
{
// Kan het bestand geopend worden?
if($openbestand = fopen($bestand, "a"))
{
$tekst = "Tekst die toegevoegd wordt";
// Kunnen de gegevens naar het bestand geschreven worden?
if(fputs($openbestand,$tekst))
{
echo "<em>$bestand</em> is succesvol aangepast.";
}
else
{
echo "Kan niet naar <em>$bestand</em> schrijven. Is het bestand ge-chmodd?";
}
fclose($openbestand);
}
else
{
echo "Kan <em>$bestand</em> niet openen. Is het bestand ge-chmodd?";
}
}
?>
Voorbeelden uitlezen
Een voorbeeld van uitlezen, inclusief controles.
PHP
- Code: Alles selecteren
<?php
//////////////////////////////
// Gegevens uitlezen
//////////////////////////////
$bestand = "gegevens.txt";
// Bestaat het bestand?
if(!file_exists($bestand))
{
echo "Het bestand bestaat niet";
}
else
{
// Kan het bestand geopend worden?
if($openbestand = fopen($bestand, "r"))
{
// Kunnen de gegevens uitgelezen worden?
if($gegevens = fread($openbestand,filesize($bestand)))
{
echo nl2br($gegevens);
}
else
{
echo "Kan <em>$bestand</em> niet uitlezen. Is het bestand ge-chmodd?";
}
fclose($openbestand);
}
else
{
echo "Kan <em>$bestand</em> niet openen. Is het bestand ge-chmodd?";
}
}
?>
- Theo
- Oprichter
- Berichten: 1795
- Geregistreerd: 11 Jun 2005 17:43
- Woonplaats: in_array()
1 bericht
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast