Einleitung: Warum man mit dem Dateisystem in PHP arbeiten können sollte
Jeder Webentwickler steht früher oder später vor der Notwendigkeit, Daten auf dem Server zu speichern, Bilder hochzuladen, temporäre Dateien zu erstellen oder Konfigurationen zu lesen. PHP bietet einen leistungsstarken Satz von Funktionen für die Arbeit mit dem Dateisystem, mit denen Sie all diese Aufgaben schnell und sicher erledigen können.
In diesem Artikel werden wir die gefragtesten Operationen behandeln: Lesen und Schreiben von Dateien, Erstellen und Löschen von Verzeichnissen, Überprüfen der Existenz von Elementen sowie die Arbeit mit Pfaden. Alle Beispiele sind in PHP geschrieben und bereit für den Einsatz in Ihren Projekten.
Grundlegende Funktionen für die Dateiarbeit
Beginnen wir mit den grundlegenden Operationen – Öffnen, Lesen und Schreiben von Dateien. PHP unterstützt mehrere Methoden zur Interaktion mit Dateien, und wir werden die gängigsten davon betrachten.
Öffnen und Schließen einer Datei: fopen und fclose
Die Funktion fopen() öffnet eine Datei und gibt einen Deskriptor für die weitere Arbeit zurück. Die Öffnungsmodi legen fest, was Sie mit der Datei tun können: Lesen (r), Schreiben (w), Anhängen (a) usw.
<?php// Datei zum Lesen öffnen$file = fopen("data.txt", "r");if ($file) { // Mit der Datei arbeiten fclose($file); // Unbedingt schließen} else { echo "Datei konnte nicht geöffnet werden";}?>Aus einer Datei lesen: fread, fgets, file_get_contents
Zum Lesen des Inhalts können je nach Aufgabe verschiedene Funktionen verwendet werden:
fread()– liest eine bestimmte Anzahl von Bytes.fgets()– liest eine einzelne Zeile.file_get_contents()– die einfachste Methode, um die gesamte Datei auf einmal zu lesen.
<?php// Gesamte Datei lesen$content = file_get_contents("example.txt");echo $content;
// Zeilenweise lesen$file = fopen("example.txt", "r");while (($line = fgets($file)) !== false) { echo $line . "<br>";}fclose($file);?>In eine Datei schreiben: fwrite und file_put_contents
Das Schreiben von Daten erfolgt mit fwrite() (erfordert einen geöffneten Deskriptor) oder file_put_contents() (eine Zeile – und die Datei ist geschrieben).
<?php// Schnelles Schreibenfile_put_contents("log.txt", "Neuer Eintrag", FILE_APPEND);
// Schreiben über fwrite$file = fopen("config.ini", "w");fwrite($file, "db_host=localhost");fwrite($file, "db_user=root");fclose($file);?>Arbeiten mit Verzeichnissen
Das Erstellen, Löschen und Navigieren in Ordnern ist ein weiterer wichtiger Teil der Arbeit mit dem Dateisystem in PHP.
Ordner erstellen und löschen: mkdir und rmdir
Die Funktion mkdir() erstellt ein neues Verzeichnis. Der dritte Parameter recursive ermöglicht das Erstellen von verschachtelten Ordnern mit einem einzigen Befehl.
<?php// Einen Ordner erstellenmkdir("uploads", 0777);
// Verschachtelte Ordner erstellen (2025 → 03 → images)mkdir("uploads/2025/03/images", 0777, true);
// Leeren Ordner löschenrmdir("uploads/temp");?>Existenz von Dateien und Ordnern prüfen
Vor der Ausführung von Operationen ist es immer sinnvoll zu prüfen, ob eine Datei oder ein Verzeichnis existiert. Dazu werden die Funktionen file_exists(), is_file() und is_dir() verwendet.
<?php$path = "data/config.php";if (file_exists($path)) { echo "Datei oder Ordner existiert";}if (is_file($path)) { echo "Dies ist eine Datei";}if (is_dir("uploads")) { echo "Dies ist ein Verzeichnis";}?>Liste der Dateien in einem Verzeichnis abrufen
Die Funktion scandir() gibt ein Array aller Elemente in einem Ordner zurück. glob() ermöglicht das Filtern nach einem Muster (z. B. nur Bilder).
<?php// Alle Dateien und Ordner$items = scandir("uploads");print_r($items);
// Nur PHP-Dateien$phpFiles = glob("*.php");for