hallo leute,
weiß jemand wo ich einen guten besucherzähler in script bekomme?
MfG
weiß jemand wo ich einen guten besucherzähler in script bekomme?
MfG
<?php
$fname = 'zaehler.txt';
if (file_exists($fname)) {
$fp = fopen($fname, "r");
$zaehler = fread($fp,filesize($fname));
fclose($fp);
if (is_writeable($fname)) {
$fp = fopen($fname,"w");
$zaehler++;
fwrite($fp, $zaehler);
fclose($fp);
echo "Sie sind besucher Nummer ".$zaehler." !";
} else {
echo "Kein Schreibzugriff!";
}
} else {
echo "Datei existiert nicht!";
}
?>
<?php
/*
user_online.php - Anzahl der Besucher Online
*/
// Konfiguration
$besucher_online_konfiguration = array (
// in welcher Datei soll es gespeichert werden
'datei' => 'zaehler2.txt',
// wie lange soll es dauern, bis ein Eintrag verfällt
'zeitlimit' => 300 // 5 Minuten
);
// zählt den aktuellen Besucher
function zaehle_besucher ($ident) {
// hole die Liste
$liste = hole_besucher_liste ();
// fuege das aktuelle Identifikationskriterium mit aktuellem Datum hinzu
$liste[$ident] = time ();
// schreibe die Liste
schreibe_besucher_liste ($liste);
}
// holt die Liste aus einer Datei
function hole_besucher_liste () {
// importiere die Konfiguration
global $besucher_online_konfiguration;
// initialisiere Array
$zeilen = array ();
// öffne datei
$fh = fopen ($besucher_online_konfiguration['datei'], 'r');
// fehler?
if (!is_resource ($fh)) {
return array ();
}
// sperre datei
$res = flock ($fh, LOCK_SH);
// gehe Zeilen durch
while (!feof ($fh)) {
$zeilen[] = fgets ($fh);
}
// entsperre Datei und schließe sie
flock ($fh, LOCK_UN);
fclose ($fh);
$ergebnis = array ();
// gehe die Zeilen durch
foreach ($zeilen as $zeile) {
// trenne Identifikationskriterium von Zeitstempel
list ($ident, $stempel) = explode ('|', $zeile, 2);
// wenn Identifikationskriterium leer ist, dann übergehen
if (empty ($ident)) {
continue;
}
// wenn stempel zu alt ist
if ($stempel < time() - $besucher_online_konfiguration['zeitlimit']) {
// übergehen
continue;
}
// füge zum Ergebnis hinzu
$ergebnis[$ident] = (int)$stempel;
}
return $ergebnis;
}
// gibt die Anzahl der Besucher zurück
function anzahl_besucher () {
return count (hole_besucher_liste ());
}
// schreibe die Liste zurück
function schreibe_besucher_liste ($liste) {
// importiere die Konfiguration
global $besucher_online_konfiguration;
$ergebnis = '';
// gehe die Liste durch
foreach ($liste as $ident => $stempel) {
$ergebnis .= "$ident|$stempel\n";
}
// öffne datei
$datei = fopen ($besucher_online_konfiguration['datei'], 'w');
// sperre datei
flock ($datei, LOCK_EX);
// Fehler?
if (!is_resource ($datei)) {
return false;
}
// schreibe das ergebnis
$cnt = fwrite ($datei, $ergebnis);
// fehler?
if ($cnt === false) {
// entsperren und schließen
flock ($datei, LOCK_UN);
fclose ($datei);
return false;
}
// schließe die Datei
flock ($datei, LOCK_UN);
fclose ($datei);
// wir sind fertig
return true;
while(!feof($besucher_online_konfiguration))
{
$zeile = fgets($besucher_online_konfiguration,1024);
echo $zeile;
}
fclose($besucher_online_konfiguration);
}
?>
Kommentar