DaveThuet
Erfahrenes Mitglied
Guten Sonntag liebe PHP-Profis.
Ich habe eine Frage und habe keine Ahnung ob dies überhaupt realisierbar ist.
Der Besucher-Zähler "BesucherOnline.php" schreibt in eine txt-Datei IP und Zeit des Besuchers.
Meine Frage ist gibt es eine Möglichkeit diese txt-Datei auf ihre Grösse zu prüfen und sagen wir bei 1 MB die gesamte txt-Datei zu löschen? Ich habe es im Moment per Cron gemacht indem ich einfach die gesamte Datei lösche aber so wird viel zu oft und auch unnötigerweise gelöscht. Wäre sehr dankbar für jegliche Hilfe in diesem Vorhaben.
Ich habe eine Frage und habe keine Ahnung ob dies überhaupt realisierbar ist.

Der Besucher-Zähler "BesucherOnline.php" schreibt in eine txt-Datei IP und Zeit des Besuchers.
PHP:
<?php
$daten = "besucher.txt";
$time = time();
$ip = getenv("REMOTE_ADDR");
$ablaufzeit = $time - "300"; // 300 Sekunden = 5 Minuten
$pruefung = @file($daten);
while (list ($line_num, $line) = @each ($pruefung)) {
$zeiten = explode("&&",$line);
if($zeiten[0] <= $ablaufzeit) {
$fp = fopen( "$daten", "r" );
$contents = fread($fp, filesize($daten));
fclose($fp);
$line=quotemeta($line);
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);
}
}
$ippruefung = @file($daten);
while (list ($line_num, $line) = @each ($ippruefung)) {
$ips = explode("&&",$line);
if($ips[1] == $ip) {
$fp = fopen( "$daten", "r" );
$contents = fread($fp, filesize($daten));
fclose($fp);
$line=quotemeta($line);
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);
}
}
$fp = fopen("$daten", "a+");
flock($fp,2);
fputs ($fp, "$time&&$ip&&\n");
flock($fp,3);
fclose ($fp);
$anzahldaten = file($daten);
$anzahl = count($anzahldaten);
echo $anzahl." Besucher online";
?>