|
[ Autoren gesucht! ]
|
PHP-Homepage.de sucht laufend Autoren für News und Artikel
Interesse?
|
|
 |
|
[Start] [Suche] [Neue Einträge]
| Hochlast-Counter | <?
//----------------------------------------------------------------------//
// Hochlast-Counter //
// Copyright (C) 2002 Sebastian Wichmann :: sebastian@flashhilfe.de //
// Andre Teubner :: a.teubner@incolere.de //
// //
// This Software is distributed under the GNU General Public //
// License. //
// //
// www.flashhilfe.de :: a.teubner@incolere.de //
//----------------------------------------------------------------------//
$ordner = "/der/pfad/zum/counter/";
$ip_ordner = "ip/"; # das wird dem Hauptpfad ($ordner) angehängt
$heute_ordner = "heute/"; # das wird dem Hauptpfad ($ordner) angehängt
$counter_datei = "counter.txt";
$ip = gethostbyaddr($REMOTE_ADDR);
$datum = date("d.m.Y");
# Wann IP gelöscht werden soll. In Minuten
$timeout = "30";
$timestamp = time();
$loeschzeit = $timestamp-($timeout*60);
# Counter auslesen.
$counter_dat = @file($ordner.$counter_datei);
$counter = trim($counter_dat[0]);
function writeCounter($file,$daten_inhalt ,$openTimeout=1,$lockTimeout=1)
{
while(!$fp=@fopen($file, "w"))
{
usleep(100000);
$openTimeout--;
if($openTimeout==0) return false;
}
while(!@flock($fp,2))
{
usleep(100000);
$lockTimeout--;
if($lockTimeout==0) return false;
}
if(!@fputs($fp,$daten_inhalt))
{
@flock($fp,3);
@fclose($fp);
return false;
}
@flock($fp,3);
@fclose($fp);
return true;
}
function heute($ordner, $heute_ordner, $datum) {
if(!file_exists($ordner.$heute_ordner.$datum.".txt"))
{
# Tages Statistik - Neuer Tag - Counter um 1 erhöhen
writeCounter($ordner.$heute_ordner.$datum.".txt","1",10,10);
} else {
$heute_dat = @file($ordner.$heute_ordner.$datum.".txt");
$heute = @trim($heute_dat[0]);
$heute = ++$heute;
# Tages Statistik counter um +1 erhöhen
writeCounter($ordner.$heute_ordner.$datum.".txt",$heute,10,10);
}
}
if(!file_exists($ordner.$ip_ordner.$ip.".txt"))
{
# IP Datei neu anlegen
writeCounter($ordner.$ip_ordner.$ip.".txt",$timestamp,10,10);
# Counter um 1 erhöhen
writeCounter($ordner.$counter_datei,++$counter,10,10);
heute($ordner, $heute_ordner, $datum);
} else {
$handle = opendir($ordner.$ip_ordner);
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
# Zeit kontrollieren
$ip_dat = @file($ordner.$ip_ordner.$file);
$ip_datum = trim($ip_dat[0]);
# IP löschen
if($ip_datum < $loeschzeit) {
@unlink($ordner.$ip_ordner.$file);
}
}
}
closedir($handle);
}
?> |
|