Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

zugriffszähler in txt schreiben





Frage

hallo zusammen hat jemand schon mal ein php counter skript geschrieben bei dem die anzahl zugriffe nach Tagen bzw. in ein txt file geschrieben werden? Resultat bzw: 03.03.2002 = 145 04.03.2002 = 234 05.03.2002 = 225 würde schon genügen! wäre super wenn jemand helfen könnte!

Antwort 1 von abc123

Hallo,

hier das Skript, das die Zugriffe auf eine beliebige PHP-Seite zählt.

In jeder Seite, in der gezählt werden soll, mußt Du folgende zwei Zeilen einfügen:

$COUNTER_FILE = "access.log";
include("counter.php");

Der Dateiname "access.log" ist selbstverständlich beliebig. Es könnte auch eine Datei im Unterverzeichnis sein.
z.B:
$COUNTER_FILE = "./logs/index.log";

ACHTUNG! Es wird nicht geprüft, ob das Verzeichnis existiert!!! Ein neues wird auch nicht angelegt.

Die Zählerdatei wird angelegt, wenn nicht vorhanden.

--- Datei: counter.php ------------------------
<?php
if(!isset($COUNTER_FILE))
die("<b>Diese Datei darf nicht direkt Aufgerufen werden.</b>");

counter($COUNTER_FILE);

function counter($fileName) {

define("DATE_FORMAT", "d.m.Y");
define("DELIMITER", "=");

$lockFileName = $fileName . ".lock";
while(true) {
while(file_exists($lockFileName));
$lockFile=fopen($lockFileName, "w");
if($lockFile) {
fclose($lockFile);
break;
}
}

$today = date(DATE_FORMAT);

if(file_exists($fileName) && filesize($fileName)) {
$fileContents = file($fileName);
$arraySize = count($fileContents);
list($lastDate, $lastCount) = split(DELIMITER, trim($fileContents[$arraySize-1]));
if($lastDate == $today)
$fileContents[$arraySize-1] = $today . DELIMITER . ++$lastCount;
else
array_push($fileContents, $today . DELIMITER . "1");
}
else
$fileContents = array($today . DELIMITER . "1");

$file = fopen($fileName, "w");
for($i=0; $i<count($fileContents); $i++)
fputs($file, trim($fileContents[$i])." ");
fclose($file);

unlink($lockFileName);

}

?>

Gruss,
Michael

Antwort 2 von danny77

Herzlichen Dank Michael

Da haste mir 3 Stunden Arbeit erspart.

gruss
danny77

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: