Daten auslesen aus Datei über fopen zum Weiterverarbeiten über PHP
Um eine Datei auszulesen, muss im ersten Schritt über fopen
ein Dateistream erzeugt werden. Dabei wird der Dateinamen angegeben und auf welche Art mit der Datei umgegangen wird.
$handle = fopen ("mailadressen.txt", "r");
Folgende verschiedene Arten des Dateihandling gibt es:
In der Spalte der Tabelle namens Zeiger ist der Startpunkt des Lesens/Schreibens ersichtlich. Wird dieser auf Anfang gestellt, werden bestehende Daten überschrieben!
In der Spalte erzeugen ist ersichtlich, ob die Datei automatisch angelegt wird, wenn diese noch nicht vorhanden ist.
Modus | engl. | Aktion | Zeiger | erzeugen |
---|---|---|---|---|
a+ | append - anfügen | lesen und schreiben | Ende | Ja |
a | append - anfügen | nur schreiben | Ende | Ja |
w+ | write - schreiben | lesen und schreiben | Beginn | Ja |
w | write - schreiben | nur schreiben | Beginn | Ja |
r+ | read - lesen | lesen und schreiben | Beginn | Nope |
r | read - lesen | nur lesen | Beginn | Nope |
Durch das while
wird die Datei Zeile für Zeile durchgegangen, bis keine Zeile mehr geliefert wird.
PHP-Quellcode: Dateien auslesen über while
<?php
// Datei öffnen zum lesen und schreiben
$handle = fopen("mailadressen.txt", "r");
while ( $inhalt = fgets($handle, 4096 ))
{
echo "<li>$inhalt ";
}
fclose($handle);
?>
Datei nicht vorhanden - Fehlermeldung „Failed to open stream“
Befindet sich die gewünschte Datei nicht im selbern Verzeichnis bzw. exisiert nicht, erhalten wir eine Fehlermeldung beim Versuch, dass die Datei geladen wird:
Warning: fopen(mailadressen.txt): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/index.php on line X
Hier können wir natürlich vor Laden der Datei auch über PHP überprüfen, ob die Datei existiert:
Überprüfen, ob Datei exisiert - file_exists
Hierzu wird die PHP-Funktion file_exists
genutzt. Die PHP-Funktion file_exists
prüft, ob eine Datei (auch ob oder ein Verzeichnis) existiert.
<?php
// Datei überprüfen, ob existiert
if (file_exists("mailadressen.txt")) {
echo "Die Datei ist vorhanden";
} else {
echo "Die Datei existiert nicht";
exit;
}
// Datei öffnen zum lesen und schreiben
$handle = fopen("mailadressen.txt", "r");
while ( $inhalt = fgets($handle, 4096 ))
{
echo "<li>$inhalt ";
}
fclose($handle);
?>
Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).
Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button: