unlink - Dateien löschen

Steusi

Nasenbär
Hallo, ich habe gerade ein kleinen Script, welches mir Sicherungsdateien von Textdateien erstellen soll in folgender Form:

Name_17.06.2009.16.35.02.ASC

Nun möchte ich alle Dateien löschen, welche älter als 10 Tage sind.
Sprich:

unlink("Name_07.06.2009***);
unlink("Name_06.06.2009***);
unlink("Name_05.06.2009***);

Bekomm den Namen ja generiert, aber ich möchte alle Dateien löschen, welche mit dem Datum beginnen, geht das oder muss man immer einen vollständigen Namen angeben

Hoffe es lässt sich realisieren!

schon mal vielen Dank im Voraus!
 
Hi,

unlink() akzeptiert nur einen (vollständigen) Dateinamen. Du wirst also eine Schleife programmieren müssen, z.B. mit glob(), wie deepthroat schon sagt.

LG
 
Eine Schleife, wie soll das bitte aussehen, meine Dateien enthalten eine Genauigkeit auf Sekunden (leider ist dies auch notwendig)

Also das wäre ein zu große Schleife.
Ich könnte jeden Tag einen neuen Ordner erstellen und darin die Datei speichern, dann kann ich ja die Ordner löschen, wäre möglich oder?
 
ok mal schauen..

1. alle Dateien in ein Array... glob(), dir() o.Ä
2. mit array_filter alle aussortieren, in dem callback suchst du dir den Datumstring mit regex oder ner substr kombi und testest es
3. alles was jetzt in deinem Array ist, muss raus, also mit foreach durchgehen und per unlink löschen

callback könnte so ausschauen:
PHP:
function callback($filename){
    if(preg_match('regex für datum', $filename, $matches)){
        if(strtotime($matches[1]) < time() - 864000){
              return true;
        }
         return false;
    }
}

So das mal als Anregung.

Gruß
 
Danke deepthroat und hubbl, perfekte Ansätze habe ich gleich umgesetzt und es funktioniert wunderbar.
Vielen vielen Dank.

Sieht jetzt folgendermaßen aus:
PHP:
			 //Datum erstellen
		     $timestamp = time();		
			 $datum = date("d.m.Y-H.i.s",$timestamp); 

			 // Sicherung vor dem Löschen erstellen
			 $sicherung = "uploaded_files/backup/Namen_".$datum.".ASC";		  
			 copy($Dataname,$sicherung);
			 
			 // Sicherungen löschen	 
			 foreach (glob("uploaded_files/backup/Namen*") as $file) { 
			 $file_date = substr($file,28,10);
				 if(strtotime($file_date) < time() - 864000) { //10 Tagen alt
					 unlink($file); 
				 }
			 }
 
Zurück