www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » PHP für Fortgeschrittene » Dateien auslesen

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);
?>