Sie sind hier: Startseite -> PHP-Grundlagen -> file - unset

Mit file und unset Daten löschen

Inhalt auf externer Datei entfernen

Das Auslesen einer Datei auf dem Server via PHP haben wir mit fgets bereits besprochen, Speichern kann man neue Inhalte mit fputs. Damit kann man schon einiges anfangen, beispielsweise die Verwaltung eines Logfiles zum Protokollieren der Besucher auf der Webseite. Eine wichtige Funktion fehlt für das Bearbeiten von Dateien aber noch - jene vom Löschen.

Diese kann durch die Verbindung von zwei Befehlen bewerkstelligt werden und zwar mit file und unset. Damit kann man den Inhalt von Dateien löschen.

Dateiinhalt mit file und unset entsorgen

<?php
$file = "test.txt";
echo "So schaut das Original aus:
";
readfile($file);
$zeile = 6;
$datei = file($file);
unset($datei[$zeile]);
$speichern = fopen($file, "w");
fputs($speichern, implode("", $datei));
fclose($speichern);
echo "

Datei nach Löschvorgang:
";
readfile($file);
?>

Zuerst lesen wir die Datei ein und lassen sie durch den bereits bekannten Befehl readfile ausdrucken. Damit sehen wir das Original der Datei, bevor wir mit dem Löschvorgang beginnen. Danach legen wir fest, dass wir Zeile 6 löschen wollen.

In der Variable $zeile ist diese Information gespeichert und durch den Befehl unset wird in der angegebenen Datei die Zeile nun auch entsorgt. Unset braucht dafür die Datei, die als Array vorliegt und spricht die entsprechende Zeile an. Aber damit ist die Datei auf dem Server noch unverändert - nur im Zwischenspeicher wurde eine Aktivität gesetzt. Die nächste Aufgabe besteht also darin, die Datei auf dem Server zu ändern.

Das erfolgt durch den nächsten Befehl, nämlich fopen, wobei die Datei und der Parameter "w" genannt sind. "w" ist wichtig, weil er steht für write also schreiben und öffnet das Original mit der Berechtigung, die Datei überschreiben zu dürfen. Das funktioniert natürlich nur, wenn wir auch Schreibrechte haben. Ergo muss die Datei (in unserem Fall test.txt) auf 777 eingestellt sein. Mit fputs wird dann die Überschreibung tatsächlich durchgeführt, danach schließt man den Vorgang und lädt die neu entstandene Datei nochmals, um sie wieder auszudrucken. Hat alles geklappt, ist die zweite Version um eine Zeile kürzer als die erste.

Buchtipp: Einstieg in PHP8 und MySQL (Thalia)*
* = Affiliate-Link; bei Kauf unterstützen Sie diese Plattform

Lesen Sie auch

PHP + Dateisystem ist ein immer noch wichtiges Thema, aber eines, das durch den häufigen Einsatz der Datenbank doch zurückgegangen ist. Trotzdem gibt es zahlreiche Anwendungen, bei denen auf Dateien am Server zugegriffen wird wie Logfiles oder Statistikprogramm mit entsprechenden Auswertungen.

Ein zentrales Thema ist die Dateibearbeitung und das bedeutet, dass man die Datei öffnen können muss, schließen, auslesen oder die Größe ermitteln.

Ein weiterer Bereich beim Dateisystem betrifft die Frage des Dateizustandes oder ob es sich überhaupt um eine Datei handelt oder ob man die Adresse und den Namen eines Verzeichnisses erwischt hat.

Der dritte Bereich betrifft die Zugriffsrechte selbst. Die Datei gibt es, aber darf man sie beschreiben? Wenn nein, kann man mit dem Befehl chmod für eine Änderung sorgen, damit die Statistik die neuen Werte eintragen kann.

Themenseiten

Diesen Artikel teilen

Infos zum Artikel

file und unset im DateisystemArtikel-Thema: Mit file und unset Daten löschen
Beschreibung: Mit der Befehlskombination von ✅ file und ✅ unset unter PHP kann Dateiinhalt auf einer externen Datei gelöscht werden.

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel
Praxisartikel