Mehrere (unbekannte) Dateien aus Ordner löschen?

Loddar1

Erfahrenes Mitglied
Hallo Leute,
Ich versuche mehrere Dateien aus einen Ordner zu löschen,
weis aber nicht wirklich wie!
Ich habe eine einfache Texbasierte Datenbank mit 5 einträgen:
id, text, name, datei, zahl
Wenn ich einen Eintrag schreibe speichere ich gleichzeitig eine .txt Datei
die einen Zahlencode hat.
Wenn ich einen weiteren Eintrag schreibe, erhöht sich zahl in Datenbank um 1 usw.
für jede zahl wird eine weitere .txt Datei mit Zahlencode gespeichert,
aber mit _zahl (123456_1) usw.
Da ich nicht weis wieviel zahlen ( _zahl ) vorhanden sind,
möchte ich alle .txt Dateien mit zB:
123456 und 123456_1 bis 123456_45 löschen.
Gibt es da irgeneine möglichkeit soetwas zu verwirklichen?
Meine Idee sieht so aus:
PHP:
unlink("data/".$_GET['forant']."_".$x.".txt");
wobei ich nicht weis wie ich $x definieren sollte.
Hat einer eine Idee?
 
Gibt es in der Zahlenfolge Unterbrechungen oder ist sicher das es immer fortlaufend ist?

Gut: 12345_1, 12345_2, 12345_3

Schlecht: 12345_1, 12345_2, 12345_5, 12345_6, 12345_7

Dann kannst du mit file_exsits prüfen ob es die nächste Zahl/Datei gibt oder nicht. Wenn nicht kannst du den Vorgang beenden.

Ungetestet so in etwa:

PHP:
<?php
$zahl = 1;

while file_exists("data/" .$_GET['forant'] ."_" .$zahl .".txt") {
	unlink("data/" .$_GET['forant'] ."_" .$zahl .".txt");
	$zahl++;
}
?>
 
Zuletzt bearbeitet:
Danke tombe für die Inspiration,
so:
PHP:
$zahl = 0;
$zahl++;
unlink("data/".$_GET['forant'].".txt");
unlink("data/".$_GET['forant']."_".$zahl.".txt");
funktioniert es bei mir.
 
Ok, die Datei ohne "Zahl" habe ich vergessen.

Aber wozu deklarierst du die Variable zuerst mit 0, zählst dann 1 dazu und verwendest sie erst dann? Gib ihr doch gleich den Wert 1 und erhöhe nach dem Löschen!

Du solltest außerdem den Inhalt von $_GET['forant'] vor dem ersten Löschen auch auf Gültigkeit prüfen. Sonst kann ich alle deine Textdateien löschen wenn ich es will.
 
Hallo tombe,
Bei dem Wert 1
löscht er die Datei _1 nicht, deshalb fange ich bei 0 an.
Die Prüfung für $_GET['forant'] habe ich schon hinzugefügt.
Danke nochmals für deine Bemühungen.
 
Zurück