Registreren

    Informatie

    Het is heel gemakkelijk om lid te worden. Door je gegevens op te geven op de registratie pagina ontvang je automatisch een email met je inlog gegevens.

  • Registreer je hier

Aanmelden

    Informatie

    Omdat je niet aangemeld bent is het gebruikerspaneel niet beschikbaar. Vul hiernaast je gegevens in om gebruik te maken van het gebruikerspaneel.

Aanmeldformulier


Bestanden schrijven/lezen

PHP is een scripttaal, die bedoeld is om op webservers dynamische webpagina's te creëren. PHP is in 1994 ontworpen door Rasmus Lerdorf, een senior software engineer bij IBM. Destijds was de taal duidelijk geïnspireerd door Perl.

Aanvankelijk stonden de letters PHP voor Personal Home Page (de volledige naam was Personal Home Page/Forms Interpreter, PHP/FI). Sinds PHP 3.0 is de betekenis een recursief acroniem geworden: PHP: Hypertext Preprocessor.

Bestanden schrijven/lezen

Berichtdoor Theo » 03 Sep 2008 23:40

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
Code: Alles selecteren
<?php
$bestand 
= "gegevens.txt";
$openbestand = fopen($bestand, "a");
?>

Je ziet dat we de functie fopen() 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:

  • 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 fread. 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
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()

Terug naar PHP



Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast


cron