PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Alte Bilder löschen (http://www.selfphp.de/forum/showthread.php?t=25657)

fap 22.11.2015 22:20:23

Alte Bilder löschen
 
Hallo php-Experten,

mithilfe dieses Forums habe ich ein Script geschrieben, das alte Dateien löscht.
Nun möchte ich dieses Script so verändern das es nur Dateien mit der Dateiendung .sql.gz und .tar.gz löscht.

Das ist das Originalscript:

PHP-Code:

 <?
$alterals = 1; // Datei die älter als x Sekunden ist
$Pfad="backup"; // Welches Verzeichnis soll untersucht werden
if($Verzeichniszeiger=opendir($Pfad)): // Verzeichnis existiert?
    while($Datei=readdir($Verzeichniszeiger)):
        if ($Datei!="." AND $Datei!=".." AND !is_dir($Datei)): // Handelt es sich um eine Datei?
            if (filemtime($Pfad . '/' . $Datei) + $alterals < time()):
                unlink($Pfad . '/' . $Datei);  //Lösche 
                print($Datei . ' wurde gelöscht<br>');
            endif;
            $liste[] = $Datei;
        endif;
    endwhile;
endif;
closedir($Verzeichniszeiger);
?>

Kann mir jemand sagen wie ich das Scipt so verändere?

Vielen Dank und viele Grüße

fap

DokuLeseHemmung 23.11.2015 09:29:57

AW: Alte Bilder löschen
 
11 Jahre alter Code....
Auch PHP hat sich weiter entwickelt....

Tipp:
Wie wäre es mit einem DirectoryIterator und einem nachgeschalteten FilterIterator.

fap 23.11.2015 11:40:49

AW: Alte Bilder löschen
 
@DokuLeseHemmung: Danke für deine Antwort!

Ich kann leider kein php und war froh dieses Script gefunden zu haben. Ich habe es auch 11 Jahre nach Veröffentlichung weil es das macht was es soll.

Ich möchte mit dem Script alte Backups aus einem .htaccess-geschützen Ordner löschen.
Nur sollen halt die beiden php(x)-Scripte die das Backup erzeugen und auch in dem Ordner liegen nicht mitgelöscht werden.

Vielen Dank und viele Grüße

fap

sysop 23.11.2015 15:36:39

AW: Alte Bilder löschen
 
Ungetestet und ohne Gewähr

PHP-Code:

$alterals 1// Datei die älter als x Sekunden ist
$extensions = array("sql""gz""tar.gz");

$Pfad="backup"// Welches Verzeichnis soll untersucht werden

if($Verzeichniszeiger=opendir($Pfad)): // Verzeichnis existiert?
    
while($Datei=readdir($Verzeichniszeiger)):
        if (
$Datei!="." AND $Datei!=".." AND !is_dir($Datei)): // Handelt es sich um eine Datei?
            
if (filemtime($Pfad.'/'.$Datei) + $alterals time() AND (in_array(pathinfo($Pfad.'/'.$DateiPATHINFO_EXTENSION), $extensions))):
                
unlink($Pfad '/' $Datei);  //Lösche
                
print($Datei ' wurde gelöscht<br>');
            endif;
            
$liste[] = $Datei;
        endif;
    endwhile;
endif;
closedir($Verzeichniszeiger); 

Wahrscheinlich ist, dass .tar.gz in die Endung gz hinein fällt, also unnötig ist.
Vorher testen, ist wie gesagt nur so mal eben dahin geschnoddert....

fap 23.11.2015 21:07:51

AW: Alte Bilder löschen
 
@sysop: Vielen Dank für deine Antwort!

Es funktioniert!

Mit freundlichen Grüßen

fap


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:34:12 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.