Also in Zeile 58 steht:
// trenne Identifikationskriterium von Zeitstempel
list ($ident, $stempel) = explode ('|', $zeile, 2);
Das ganze Script sieht so aus:
<?php
/*
user_online.php - Anzahl der Besucher Online
*/
// Konfiguration
$besucher_online_konfiguration = array (
// in welcher Datei soll es gespeichert werden
'datei' => 'txt/useron/user_ips.txt',
// wie lange soll es dauern, bis ein Eintrag verfällt
'zeitlimit' => 300 // 5 Minuten = 300
);
// 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;
}
?>
Leider hab ich nicht die große Ahnung von PHP das ich es alleine hinbekomme das um zu schreiben. Wäre also super wenn mir da jemand Helfen könnte.