• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

grafischen Counter in textbasierten Daily-Counter umschreiben....

Metallica

Lounge-Member
Hi Leute,

kann mir jemand helfen, diesen grafischen Counter in einen textbasierten Daily-Counter umzuschreiben, der eben die täglichen Zugriffe zählt und nach 24Std. die counter.txt wieder auf Null setzt??

Hier der Code:
<?php
$file = "php-bin/counter.txt"; // Dateizuweisung
$ftp = @fopen($file,"r+"); // Öffnet die Datei
$count = (int)fgets($ftp,50); // Holt die ersten 50 Zeichen
$count++; // Addiert eine 1
rewind($ftp); // Setzt Zeige auf 0. Position
fwrite($ftp,$count); // Schreibt
fclose($ftp); // Schliesst die Datei

for ($i = 1; $i <= strlen($count); $i++) //Zählt die Anzahl der Zeichen
{
$zahl = substr($count, $i - 1, 1); //1.-n Zeichen werden einzeln gelesen
for ($z = 0; $z < 10; $z++)
{
if ($zahl == $z) //Für das Zeichen wird eine Grafik eingesetzt
{
echo "<IMG SRC=bilder/$z.gif WIDTH=15 HEIGHT=20 BORDER=0 ALT=$z>";
}
else{echo "";}
}
}
?>

Thanxs,
bin in php nicht so bewandelt.
 
kannst du auch so lösen...

<?
$cFile = "counter".date(z).".text"; // generiert ein counterfile für jeden tag des jahres

if(file_exists($cFile)) { // prüft die existenz dieses files --> file existiert
$fop = fopen($cFile, "r+);
$count = fgets($fop,6);
$count++;
rewind($fop);
fputs($fop,$count,6);
fclose($fop);
} else { // --> file existiert nicht
$fop = fopen($cFile, "w");
$count = "1";
fputs($fop,$count,6);
fclose($fop);
}

Der 'Vorteil' aus dieser Lösung ist, dass Du dadurch einen (vielleicht) besseren Überblick über die täglichen Zugriffe auf Deine Site hast...
 
danke MacMumins. Ich möchte die täglichen Zugriffe aber auf meiner Site anzeigen. Fehlt da nicht irgendwo der Echo-Befehl so wie beim grafischen Counter??

Es soll nämlich so ausschauen:

Besucher heute: 24

wobei 24 natürlich die von php zurückgegebene variable ist.
 
yep

sofern du die ausgabe in einem HTML-teil machen möchtest, setzt du an dieser stelle einfach ein:

<? echo $count; ?>

das war's :)
 
Warum meinst du eingentlich, das der Vorteil von deiner Lösung ein besserer Überblick der täglichen Zugriffe auf meine Site sind????

Werd deine Version demnächst mal auschecken.
 
oh...

... war nur ein anderer Lösungsansatz...

... falls es Dich evtl. interessiert, wie viele täglich auf Deine Site surfen...
 
ich kann den code aber schon übernehmen, oder?? der paßt ja wenn ich nur die täglichen zugriffe auf der site ausgeben will, oder?? Da hab ich doch eh genau das, was du vorhin meintest, oder??
 
... sure ...

das einzige was der code 'zusätzlich' macht ist, dass er das file nicht löscht, sondern ein neues anlegt (wenn noch nicht vorhanden). deshalb ist der befehl 'date(z)' eingefügt.

du hast dann in deinem dir/ eben für jeden tag ein file in denen du dann blättern kannst.

beispielsweise kannst du auch in der site ausgeben, wieviele gestern da waren, wie viele diese woche, wie viele diesen monat, etc...
 
na hoffentlich gibt's dann kein serverproblem wenn die txt immer neu angelegt wird. Ich dachte da eher ans überschreiben. So viele Leute werden nicht auf meiner site sein, dass ich eine so detaillierte aufschlüsselung brauche.
wie würde der befehl fürs überschreiben aussehen??
 
löschen ?

ein file auf einem web-server zu löschen macht eigentlich 'wenig' sinn...

frag einfach einen datumsunterschied ab und falls der >= 1 ist setz den $count auf "0"...

les mal in der php-referenz die entsprechenden kapitel...

mal unabhängig von dem was du oben schreibst... die dateien für den server sind kein problem... du erstellst ja täglich nur EIN file mit der grösse von 6 byte. das x 360 beispielsweise = 2160 byte = 2.160 Kbyte...

das 'verkraftet' sogar der schwächste server...
 
Oh Gott. Bin ein Newbie in php. Das mit der If-Anweisung check ich ja grad noch. Aber wie frage ich einen Datumsunterschied ab?? Die Referenz erklärt nur das Dateobjekt.
 
<?php
$count += 1;
$file = @fopen("1.inc","w+");
fputs($file, $count);
fclose($file);
echo "Es waren schon ";
include("1.inc");
echo " User auf der Page.";
?>

Da hast nen ganz einfachen Counter, der nur hinschreibt, dass schon x User auf der Page waren.
 
@ShadowsMaster:
Und kann ich Deine Version ganz normal in ein html-file einbinden?? Wie schauts da beim Echo-Befehl eigentlich mit der Formatierung aus. Ich würd halt schon gern die Farbe,Größe und Schriftart vorgeben?!?!?!
Ahja noch was fällt mir auf. Du benutzt nirgends eine Datumsfunktion. Wie weißt Du wann ein Tag zu ende ist damit php wieder bei Null bzw. Eins (am Nächsten) anfängt???
 
echo "<font size=\"...\" color=\"...\" face=\"...\">Es waren schon ";
include("1.inc");
echo " User auf der Page.</font>";

Mein Counter zählt auch nur, wieviele User schon insgesamt auf der Page waren. Nicht, wieviele an welchem Tag.
 
Zurück
Oben