![]() |
|||
| HSG |
|
Die Datei zaehler.txt soll gelesen und der Inhalt dargestellt werden:
<?php
$handle = fopen("zaehler.txt","r");
$n = fgets($handle,1000);
fclose($handle);
echo $n;
?>
Die Funktion fopen versucht die Datei zaehler.txt zum Lesen ("r") zu öffnen. Im Erfolgsfall gibt die Funktion ein sogenanntes Datei-"Handle" ("Griff") zurück. Da man mit mehreren Dateien arbeiten kann, dient das Handle zur Identifizierung der speziellen Datei. Die Funktion fgets (file get string) liest ein Byte weniger als die angegebene Zahl angibt ein, es sei denn, Zeilenende oder Dateiende wird vorher erreicht. Lässt man die Längenangabe weg, so wird bis zum Ende einer Zeile gelesen. fclose schließlich schließt eine geöffnete Datei.
Erstelle eine Text-Datei abc.txt, schreibe irgendetwas hinein und lasse den Inhalt von einem kleinen php-Skript ausgeben. Experimentiere mit der Anzahl der Bytes, die du einliest.
Beim Öffnen einer Datei wird der sogenannte Dateizeiger auf das erste Zeichen der Datei gesetzt
und bei jedem Lesen entsprechend weitergerückt. Irgendwann wird er dann über das letzte Zeichen
hinauslaufen. Dann ist das Ende (end of file) der Datei erreicht. Die
Funktion feof($handle) hat den Wert false, wenn das Dateiende noch nicht erreicht ist,
ist es erreicht, wird sie true.
<?php
$handle = fopen("abc.txt","r");
while (!feof($handle))
{
$n = fgets($handle,2);
echo $n."<br />";
};
fclose($handle);
?>
Das kleine Programm liest eine Datei zeichenweise aus und gibt jedes Zeichen in einer eigenen Zeile aus.
<?php
$n = 123;
$handle = fopen("zaehler.txt","w");
fputs($handle,$n);
fclose($handle);
?>
Mit dem Parameter w öffnet man eine Datei zum Schreiben. Wenn die Datei nicht existiert, wird sie neu angelegt. Eine vorhandene Datei wird dadurch gelöscht!
<?php
$name = "abcd.txt";
if (is_file($name))
{
echo "Datei $name ist vorhanden.";
}
else
{
echo "Datei $name ist nicht vorhanden.";
};
?>
Verwende die Quick-Referenz von www.php-center.de, um dich über fehlende Details zu informieren. Schreibe einen funktionierenden Seitenzähler. Das heißt, eine eingelesene Zahl wird um 1 erhöht und in die Datei zurückgeschrieben. Wenn alles soweit funktioniert, so versuche den Fehler abzufangen, der entsteht, wenn man zu Beginn auf eine nicht existierende Datei zugreifen will.