• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

php-Datei für Counter auslesen

hornster

Neues Mitglied
Hallo zusammen

Ich habe auf meiner Seite die Web-Statistik von "PHP Web Stat" im Hintergrund laufen. Nun möchte ich aber auf meiner Seite die Gesammtzahl der Besucher einblenden. Ich habe es mal in der Art versucht, leider ging dies nicht. Woran liegt der Fehler?

Counter-Sript:
PHP:
<?php
/*

    counter-Datei, die auf die Statistik-Datei zurückgreift und die 
    Anzeige im HTML-Teil vrobereitet.
    Zur Anzeige einfach "echo $visitors" ausgeben und zuoberst 
    include(counter.php)

*/
//----------------------------------------------------------------------//
// Globale Variablen
    $counter_file         = "statistik/log/cache_visitors.php";            // Pfad zur Statistik-Datei
    $counter_images     = "counter";                                    // Pfad zu den Counter-Bilder
    $counter_images_alt = 'alt=""';                                        // HTMl-Tag wenn Bilder nicht vorhanden


//----------------------------------------------------------------------//
// Filehandling
    $counter_fo = fopen($counter_file,"r");                                // File öffnen, Modus: lesen
    $visitors = array_sum ( $visitor_year );                            // Besucheranzahl aus Arraygrösse ermitteln
    fclose($counter_fo);                                                // Datei schliessen

//----------------------------------------------------------------------//
// HTML-Anzeige zusammenstellen
    $visitors = str_replace("0","<img src='$counter_images/0.jpg' $counter_images_alt>","$visitors");
    $visitors = str_replace("1","<img src='$counter_images/1.jpg' $counter_images_alt>","$visitors");
    $visitors = str_replace("2","<img src='$counter_images/2.jpg' $counter_images_alt>","$visitors");
    $visitors = str_replace("3","<img src='$counter_images/3.jpg' $counter_images_alt>","$visitors");
    $visitors = str_replace("4","<img src='$counter_images/4.jpg' $counter_images_alt>","$visitors");
    $visitors = str_replace("5","<img src='$counter_images/5.jpg' $counter_images_alt>","$visitors");
    $visitors = str_replace("6","<img src='$counter_images/6.jpg' $counter_images_alt>","$visitors");
    $visitors = str_replace("7","<img src='$counter_images/7.jpg' $counter_images_alt>","$visitors");
    $visitors = str_replace("8","<img src='$counter_images/8.jpg' $counter_images_alt>","$visitors");
    $visitors = str_replace("9","<img src='$counter_images/9.jpg' $counter_images_alt>","$visitors");

    $visitors = str_replace('alt=""','alt="" border="0" height="35px" width="26px"/',$visitors);

?>
Und die Log-Datei, aus welcher ich die Besucher auslesen möchte:
PHP:
<?php
$visitor_year = array ( 
" 2010 " => "130"
);
?>
Die Besucher werden bei Web-Stat in Jahre gruppiert. Ich möchte aber nun alle Besucher in meinem "öffentlichen" Counter anzeigen. Wie mache ich das?
 
Warum so kompliziert?
Warum includest Du die Log-Datei nicht einfach und verwendest dann die Variable $visitor_year?
 
Hallo zusammen

Ich war leider abwesend, daher melde ich mich erst jetzt wieder. Ich habe mal folgendes probiert, funktionierte leider nicht:

Das Counter-File:
PHP:
<?php
/*

    counter-Datei, die auf die Statistik-Datei zurückgreift und die 
    Anzeige im HTML-Teil vrobereitet.
    Zur Anzeige einfach "echo $visitors_total" ausgeben und zuoberst 
    include(counter.php)

*/

    include("statistik/log/cache_visitors.php");
//----------------------------------------------------------------------//
// Globale Variablen
    $counter_images     = "counter";                                    // Pfad zu den Counter-Bilder
    $counter_images_alt = 'alt=""';                                        // HTMl-Tag wenn Bilder nicht vorhanden
    $visitors_total = array_sum ( $visitor_year );

//----------------------------------------------------------------------//
// HTML-Anzeige zusammenstellen
    $visitors_total = str_replace("0","<img src='$counter_images/0.jpg' $counter_images_alt>","$visitors_total");
    $visitors_total = str_replace("1","<img src='$counter_images/1.jpg' $counter_images_alt>","$visitors_total");
    $visitors_total = str_replace("2","<img src='$counter_images/2.jpg' $counter_images_alt>","$visitors_total");
    $visitors_total = str_replace("3","<img src='$counter_images/3.jpg' $counter_images_alt>","$visitors_total");
    $visitors_total = str_replace("4","<img src='$counter_images/4.jpg' $counter_images_alt>","$visitors_total");
    $visitors_total = str_replace("5","<img src='$counter_images/5.jpg' $counter_images_alt>","$visitors_total");
    $visitors_total = str_replace("6","<img src='$counter_images/6.jpg' $counter_images_alt>","$visitors_total");
    $visitors_total = str_replace("7","<img src='$counter_images/7.jpg' $counter_images_alt>","$visitors_total");
    $visitors_total = str_replace("8","<img src='$counter_images/8.jpg' $counter_images_alt>","$visitors_total");
    $visitors_total = str_replace("9","<img src='$counter_images/9.jpg' $counter_images_alt>","$visitors_total");

    $visitors_total = str_replace('alt=""','alt="" border="0" height="35px" width="26px"/',$visitors_total);

?>
Und das File, aus welchem ich die Daten auslesen will:
PHP:
<?php
$visitor_year = array ( 
" 2010 " => "130"
);
?>

Oder wie hast du das mit dem Include-Befehl gemeint?
 
Hier...

PHP:
<?php 



error_reporting(-1);

date_default_timezone_set('Europe/Berlin');



$sLogFile = 'test.log';



$aCounterInfos = array(

	'ips'	=> array(),

	'count'	=> array()

);



$iYear = (integer)date('Y');

$iMonth = (integer)date('m');

$iDay = (integer)date('d');



if(file_exists($sLogFile) && is_writable($sLogFile)) {

	$aCounterInfos = unserialize(

		file_get_contents($sLogFile)

	);

}



if(!in_array($_SERVER['REMOTE_ADDR'], $aCounterInfos['ips'])) {

	$aCounterInfos['ips'][] = $_SERVER['REMOTE_ADDR'];

	

	if(!isset($aCounterInfos['count'][$iYear])) {

		$aCounterInfos['count'][$iYear] = array();

	}

	

	if(!isset($aCounterInfos['count'][$iYear][$iMonth])) {

		$aCounterInfos['count'][$iYear][$iMonth] = array();

	}

	

	if(!isset($aCounterInfos['count'][$iYear][$iMonth][$iDay])) {

		$aCounterInfos['count'][$iYear][$iMonth][$iDay] = 0;

	}

	

	$aCounterInfos['count'][$iYear][$iMonth][$iDay]++;

	

	file_put_contents($sLogFile, serialize($aCounterInfos));

}



echo '<pre>';

var_dump($aCounterInfos);

das sollte ungefähr so funktionieren wie du es gern hättest aber nicht bauen kannst
 
Habe den Fehler gefunden. Ich musste die Lehrzeichen entfernen, dann funktionierte es.

Von:
PHP:
array_sum ( $visitor_year );

Nach:
PHP:
array_sum($visitor_year);

Trotzdem vielen Dank
 
Zurück
Oben