Auto-löschen alle Dateien nach x-Zeit
Wie kann Sie automatisch löschen Sie alle Dateien in ein sub-Verzeichnis nach x-Zeit (sagen wir nach 24 Stunden) - ohne mithilfe eines cronjob-Befehl vom server oder pl. Wie kannst du das nur mit PHP-code oder besuchen Sie einfach die Seite, ohne auf etwas und den Befehl automatisch ausgeführt wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Antwort zum letzten Kommentar zu meiner ersten Antwort. Ich werde, um code zu schreiben-Beispiel, so habe ich eine andere Antwort, statt zusätzlich noch ein Kommentar.
Zum entfernen von Dateien mit der benutzerdefinierten Erweiterung, die Sie haben zu implementieren-code:
Kommentar: 1. Dieses Beispiel verwendet den regulären Ausdruck
/\.txt$/i
, was bedeutet, dass nur Dateien mit der Erweiterungtxt
entfernt werden. '$'- Zeichen bedeutet, dass der Dateiname muss beendet werden mit dem string '.txt'. Flagge " i " zeigt an, dass der Vergleich wird groß-und Kleinschreibung. Mehr über preg_match() Funktion.Außerdem können Sie strripos() - Funktion für die Suche von Dateien mit bestimmten Nebenstelle. Hier ist ein code-snippet:
Kommentar: Dieses Beispiel scheint mehr auf der Hand. Ergebnis
strripos()
kann auch erzielt werden mit einer Kombination von zwei Funktionen:strrpos(strtolower($file), '.txt')
, aber, IMHO, es ist eine gute Regel, mit weniger Funktionen in Ihren code, um es besser lesbar und kleiner. Bitte, aufmerksam Lesen Warnung auf der Seite von strripos () - Funktion(return-Werte-block).Noch ein wichtiger Hinweis: wenn Sie mit den UNIX-system -, Datei entfernen könnte scheitern, weil der Datei-Berechtigungen. Sie können überprüfen, Handbuch über chmod() Funktion.
Glück.
Können Sie PHP-core-Funktionen filectime() und unlink() zu überprüfen, die Zeit der Erstellung der Datei und löschen Sie die Datei/Dateien.
BEARBEITEN.
- Code Beispiel:
Nun, hier gehen wir, das PHP-Skript, das die Dateien löscht, die X-Anzahl von Tagen alt sind.
Nun fügen Sie diesen code und speichern es als eine php-Datei, laden Sie Sie in den Ordner aus, wo Sie wollen, um die Dateien zu löschen. Sehen Sie am Anfang dieser php-code
legen Sie die Anzahl der Tage, zum Beispiel wenn man es auf 2, dann werden die Dateien, die älter als 2 Tage werden gelöscht. Im Grunde ist dies, was passiert, wenn Sie das Skript ausführen, wird das aktuelle Verzeichnis und liest die Einträge der Datei an, überspringt '.' für das aktuelle Verzeichnis und weiteren überprüft, ob es irgendwelche anderen Verzeichnisse,
wenn die Datei ist kein Eintrag für ein Verzeichnis ist, dann ruft es die Datei änderungs-Zeit (der Zeitpunkt der letzten änderung) und vergleicht, wenn es die Anzahl der Tage alt
wenn die Bedingung wahr wird, dann löscht er die Datei mit Hilfe der unlink( ) php-Funktion. Schließlich schließt das Verzeichnis und beendet sich. Außerdem habe ich einen Zähler zum zählen der Anzahl von Dateien, die gelöscht werden, wird angezeigt am Ende des Löschvorgangs. So legen Sie die php-Datei in dem Verzeichnis, das die Datei löschen und ausführen.
Hoffentlich das hilft 🙂
Hier ist ein weiteres Beispiel mit GLOB und es wird eine Datei löschen,
oder wenn Sie wollen, um bestimmte Dateien auszuschließen
Nach dem Versuch, um diese Beispiele zu verwenden, traf ich ein paar Fragen:
Änderte ich das Beispiel mit filemtime und fixiert den Vergleich wie folgt:
Verwende ich shell-Befehl, es ist wie ein cronjob obwohl
php:
}