Arbeiten mit dem Dateisystem in PHP: Vollständiger Leitfaden für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum PHP mit Dateien arbeiten kann?

Jedes Webprojekt steht früher oder später vor der Notwendigkeit, Daten auf dem Server zu speichern. Ob es sich um das Hochladen eines Benutzeravatars, das Erstellen von Fehlerprotokollen oder das Generieren von Berichten handelt – all dies erfordert die Fähigkeit, Dateien und Ordner zu verwalten. PHP bietet eine leistungsstarke Reihe von Funktionen für die Arbeit mit dem Dateisystem, und sie zu erlernen ist nicht so schwierig, wie es scheint.

In diesem Artikel behandeln wir die grundlegenden Operationen: Erstellen, Lesen, Schreiben, Löschen von Dateien und Verzeichnissen sowie die Überprüfung von Zugriffsrechten. Alle Beispiele sind in reinem PHP geschrieben und können in Ihren Projekten verwendet werden.



1. Grundlagen: Öffnen, Lesen und Schreiben von Dateien

Bevor Sie etwas mit einer Datei tun, müssen Sie sie öffnen. Dazu wird in PHP die Funktion fopen() verwendet. Sie gibt eine Ressource (einen Zeiger auf die Datei) zurück, mit der dann gearbeitet werden kann.



Öffnungsmodi von Dateien

Der zweite Parameter von fopen() ist der Zugriffsmodus. Hier sind die gängigsten:

  • 'r' – nur Lesen, Zeiger am Anfang der Datei.
  • 'w' – Schreiben (erstellt die Datei oder leert eine vorhandene).
  • 'a' – Anhängen an das Ende der Datei (erstellt sie, falls nicht vorhanden).
  • 'x' – Erstellen und Schreiben; wenn die Datei bereits existiert – Fehler.


Beispiel: Text in eine Datei schreiben

<?php$filename = 'test.txt';$file = fopen($filename, 'w') or die('Datei konnte nicht geöffnet werden');$text = "Hallo, Welt!";fwrite($file, $text);fclose($file);echo 'Datei erfolgreich geschrieben';?>

Nach dem Schreiben sollten Sie die Datei immer mit der Funktion fclose() schließen – dies gibt Systemressourcen frei.



Datei zeilenweise lesen

<?php$file = fopen('test.txt', 'r');while (!feof($file)) {    $line = fgets($file);    echo $line . '<br>';}fclose($file);?>

Die Funktion feof() prüft, ob das Ende der Datei erreicht ist. fgets() liest eine Zeile.



Einfachere Alternativen

Für schnelle Operationen bietet PHP Wrapper-Funktionen:

  • file_get_contents($filename) – liest die gesamte Datei in einen String.
  • file_put_contents($filename, $data) – schreibt einen String in eine Datei (erstellt oder überschreibt sie).
<?php// Lesen$content = file_get_contents('test.txt');echo $content;

// Schreibenfile_put_contents('new.txt', 'Einfacher Eintrag');?>


2. Verzeichnisverwaltung: Erstellen, Löschen, Navigation

Die Arbeit mit Ordnern in PHP ist fast so einfach wie mit Dateien. Die wichtigsten Funktionen sind mkdir(), rmdir() und scandir().



Ordner erstellen

<?php$dir = 'uploads';if (!is_dir($dir)) {    mkdir($dir, 0777, true);    echo 'Ordner erstellt';} else {    echo 'Ordner existiert bereits';}?>

Der Parameter 0777 sind die Zugriffsrechte (Maske). Das dritte Argument true ermöglicht das rekursive Erstellen von verschachtelten Verzeichnissen (z. B. images/2024/).



Ordner löschen

Die Funktion rmdir() löscht nur ein leeres Verzeichnis. Wenn sich darin Dateien befinden, muss es zuerst geleert werden:

<?phpfunction removeDir($dir) {    if (!is_dir($dir)) return;    $items = scandir($dir);    foreach ($items as $item) {        if ($item == '.' || $item == '..') continue;        $path = $dir . '/' . $item;        if (is_dir($path)) {            removeDir($path);        } else {            unlink($path);        }    }    rmdir($dir);}removeDir('temp');echo 'Ordner gelöscht';?>


Dateiliste in einem Ordner abrufen

<?php$files = scandir('uploads');foreach ($files as $file) {    if ($file != '.' && $file != '..') {        echo $file . '<br>';    }}?>


3.

Blogs

Buchempfehlungen