Datei bei Erreichen einer bestimmten Größe löschen

xinzhu

Grünschnabel
Hallo,
ich bin auf der Suche nach etwas bestimmt sehr simplen für einen PHP Profi.
Folgendes sollte dieses Script können; wenn Datei x 1MB erreicht , wird es gelöscht oder umbenannt.
Was ich bisher habe :
PHP:
<?php
 $datei = "*.log";  
 $dateigroesse = filesize($datei);
 $dateigroesse = round(($dateigroesse / 1024) ,2);   // Umwandeln in KB

 $erstellung = fileatime($datei);   // Ermittelt wann die Datei erstellt wurde
 $erstellung = gmdate("d.m.y", $erstellung);   // GMT-Zeitangabe

 $heute = date("d.m.y");
 $neuer_name = "$erstellung-$heute.log";

if($dateigroesse >= 1)    // angabe in KB habe ich zum test auf 1kb gesetzt, geht trotzdem nicht.
rename($datei , $neuer_name);

?>

Etwas stimmt hier allerdings ganz und gar nicht.
Wenn das bitte jemand vielleicht ein wenig ändern könnte, wäre mir sehr geholfen.

Vielen Dank für eure Mühen im voraus.
 
PHP:
$erstellung = fileatime($datei);   // Ermittelt wann die Datei erstellt wurde
php.net hat gesagt.:
fileatime -- Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei

Ansonsten, was funktioniert denn nicht?
Testausgabe von $dateigroesse?
Mal probiert mit error_reporting(E_ALL)?
 
Dieser Code oben will die Datei einfach nicht umbennen, dazu hatte ich ja schon einen Test gemacht und die Dateigröße auf 1kb festgesetzt, damit es gelöscht wird. "Schöner" wäre es ja wenn es sich sowas in der Richtung finden würde, wo die Datei gelöscht wird.

Mal probiert mit error_reporting(E_ALL)?
Nein habe ich nicht gemacht, wüsste auch nicht wie das gehen soll um ehrlich zu sein :) .
 
Einen Fehler habe ich noch übersehen:

PHP:
if($dateigroesse >= 1)    // angabe in KB habe ich zum test auf 1kb gesetzt, geht trotzdem nicht.
rename($datei , $neuer_name);
Lässt man bei einer if Bedingung die geschweiften Klammern weg, so erwartet PHP die do Anweisung in der gleichen Zeile.
Bei dir würde die Datei also immer umbenannt werden, egal wie groß sie ist.
PHP:
if($dateigroesse >= 1) {   // angabe in KB habe ich zum test auf 1kb gesetzt, geht trotzdem nicht.
rename($datei , $neuer_name);
}
Sollte also schonmal besser funktionieren.
Sind denn die Dateiberechtigungen richtig gesetzt?
Denn lokal bei mir funktioniert das Script wunderbar.

Einfach mal ganz an den Anfang der Datei:
PHP:
error_reporting(E_ALL);
setzen und schauen ob er etwas meldet.

Nachtrag:
Für das löschen würde es übrigens so aussehen:
PHP:
if($dateigroesse >= 1) {   // angabe in KB habe ich zum test auf 1kb gesetzt, geht trotzdem nicht.
unlink($datei);
}
 
Zurück