• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Alle Dateien löschen die älter sind als 10 Minuten

hannes12

Neues Mitglied
Hallo,

Ich will ALLE Dateien in einem Ordner löschen die älter als 10 Minuten sind.

Soweit bin ich
Code:
<?php
    $dir = $_SERVER["DOCUMENT_ROOT"].dirname($_SERVER['PHP_SELF']).'/cache/';
    $folder = dir($dir);
    while ($dateiname = $folder->read()) {
        if (filetype($dir.$dateiname) != "dir") {
            if (strtotime("+10 minutes") >
                @filemtime($dir.$dateiname)) {
                if (@unlink($dir.$dateiname) != false)
                echo $dateiname.' wurde gelöscht $dir<br>';
                else
                echo $dateiname.' konnte nicht
                    gelöscht werden $dir<br>';
                }
        }
    }
    echo "Fertig $dir";
    $folder->close();
    exit;
?>

Leider werden alle Dateien in dem Ordner gelöscht , auch die die nur 30 Sekunden als sind zb. !
Hab auch schon +1 day, +1 hour versucht und das auch in der Mehrzahl also hours usw.

Wo ist der fehler ?
Danke
 
Werbung:
Lass mal die @'s vor den Funktionen weg, damit unterdrückst Du mögliche Fehlermeldungen.

Außerdem prüfe mal per Debugging was für Zeiten genau rauskommen. Beispiel:

PHP:
echo "->".strtotime("+10 minutes")." > ".filemtime($dir.$dateiname)."<-";
 
Werbung:
@threadi

Hier die Ausgabe...

Code:
[COLOR=#000000][FONT=Times New Roman]Fertig /var/www/no-public/cache/->1330729246 > 1330728582<-[/FONT][/COLOR]

Passt doch oder ?

@igestalten

etwa so ?

Code:
if (date("+10 minutes")
 
Ändere den Debug-Code um wie folgt um und poste das Ergebniss.

( Nebenbei, pack den Code IN die Schleife. )

PHP:
echo "->".strtotime("+10 minutes")." > ".filemtime($dir.$dateiname)." ( Größer: ".( strtotime( "+10 minutes" ) > filemtime( $dir.$dateiname ) )? 'Ja':'Nein'." <-";


P.S. Könnten paar Anführungszeichenfehler drine sein, sollten aber leicht korrigierbar sein. Es soll einfach für jede Schleife angezeigt bekommen, ob die laut System über 10 Minuten liegt oder nicht.

P.P.S. Oh mist.. jetzt bin ich durcheinander.. Als nicht Multitasking Mensch 10 Sachen gleichzeitig zu versuchen, kann nur Schief gehen..
 
Code:
find VERZEICHNIS -mmin +10 -type f -print0 | xargs -0 -r rm
 
Werbung:
Zurück
Oben