AutoDelete
Aus Programmers Guide
(Unterschied zwischen Versionen)
Roy (Diskussion | Beiträge)
(Die Seite wurde neu angelegt: „= Automatisches löschen alter Dateien (z.B. Logfiles) in PHP = Ich lösche meine temporären Dateien, um meinen Webspace sauber zu halten, ganz einfach über e…“)
(Die Seite wurde neu angelegt: „= Automatisches löschen alter Dateien (z.B. Logfiles) in PHP = Ich lösche meine temporären Dateien, um meinen Webspace sauber zu halten, ganz einfach über e…“)
Aktuelle Version vom 09:39, 16. Sep. 2010
Automatisches löschen alter Dateien (z.B. Logfiles) in PHP
Ich lösche meine temporären Dateien, um meinen Webspace sauber zu halten, ganz einfach über ein kleines Script.
<?php /********************************************************************* Filename: index.php *********************************************************************/ /**************************>= PHP 5.3******************************** für neue PHP-Versionen exisitiert der etwas einfachere FilesystemIterator $iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::CURRENT_AS_PATHNAME); foreach ($iterator as $fileinfo) { echo filemtime($iterator->current()) . "\n<br>"; } *********************************************************************/ //für meine 'alte' PHP 5.2.6 Version $timeStr="-1 week"; //für strtotime $deleteItems=true; //löschen der alten dateien $echoItems=false; //anzeigen der Dateien und Arbeitsschritte $dirName=dirname(__FILE__); //Pfadangaben //Den Iterator mit dem Pfadnamen der aktuellen Datei füttern und erzeugen $iterator = new DirectoryIterator($dirName); //solange noch was zu iterieren ist while($iterator->valid()) { //den aktuellen FilePointer holen $file = $iterator->current(); //ist die Datei älter als oben angegeben und nicht die aktuell aufgerufene if($file->getCTime() <= strtotime($timeStr) && $file->getFilename() != basename(__FILE__)){ //soll was ausgegeben werden? if($echoItems){ echo $file->getMTime() . " -> " . $file->getFilename()."<br>"; } //soll gelöscht werden? if($deleteItems){ unlink($dirName."/".$file->getFilename()); //natürlich zeigen wir den Löschvorgang an. if($echoItems){ echo $file->getFilename()."..deleted<br>"; } } } //gehe zum nächsten Element $iterator->next(); } ?>