Besucherzähler
Hallo Gruppe,
ich möchte einen für alle User sichtbaren Besucherzähler auf meine
Homepage integrieren.
Doch halt! So einfach ist das nicht. Der Zähler ist schon vorhanden,
er soll aber als eine Art "Tacho" angezeigt werden.
Also ungefähr so:
[1] [1] [2] [1] (Beispiel für den 1121. Besucher)
Jede einzelne Zahl soll durch ein IMG angezeigt werden.
Die Variable sieht so aus: $zaehler=3D1121;
Wie wandle ich also die Zahl 1121, welche in einer Datenbank bereits
gespeichert wird, so um, so dass ich für jede Stelle ein IMG laden
kann?
Beispiel:
<img src=3D"1.gif"><img src=3D"1.gif"><img src=3D"2.gif"><img src=3D"1.gif">=
Das ist jetzt mal so richtig knifflig, oder?
Vielleicht stehe ich aber auch nur auf dem Schlauch!
Danke für Hilfe!
Gruß Stephan
Re: Besucherzähler
--- Original Nachricht ---
Absender: sahlender [at] gmail.com
Datum: 04.01.2008 22:56
>
> Jede einzelne Zahl soll durch ein IMG angezeigt werden.
>
> Die Variable sieht so aus: $zaehler=1121;
>
Hallo,
mit den Funktionen:
strlen() http://de.php.net/manual/de/function.strlen.php
und
substr() http://de.php.net/manual/de/function.substr.php
kann man zunächst die Länge des Variablenstring errmitteln und dann so
oft wie lang ;), für jede Stelle (Ziffer) die entsprechende Bilddatei
anzeigen.
Wär mal mein Vorschlag, gibt aber glaub noch ne einfachere Lösung, hab
ich auch schonmal irgendwo gesehen, finds nur nicht im Moment.
schönen Abend noch
--
Stefan Max Kube (DD6VSK)
Homepage: http://www.max-fun.de/
Weblog: http://blog.max-fun.de/
Re: Besucherzähler
sahlender [at] gmail.com schrieb:
> ich möchte einen für alle User sichtbaren Besucherzähler auf meine
> Homepage integrieren.
Wahnsinn, da freuen sich bestimmt alle User brennend.
> Doch halt! So einfach ist das nicht. Der Zähler ist schon vorhanden,
> er soll aber als eine Art "Tacho" angezeigt werden.
> Die Variable sieht so aus: $zaehler=1121;
> Wie wandle ich also die Zahl 1121, welche in einer Datenbank bereits
> gespeichert wird, so um, so dass ich für jede Stelle ein IMG laden
> kann?
> Beispiel:
> <img src="1.gif"><img src="1.gif"><img src="2.gif"><img src="1.gif">
> Das ist jetzt mal so richtig knifflig, oder?
Nein, das ist im Prinzip trivial.
function build_number($n) {
return "<img src='$n.gif' alt='$n'>";
}
echo implode(array_map('build_number', str_split($zaehler)));
--
"Faulheit ist die Wurzel allen Fortschritts!"
(Inhalt eines Knallbonbons, 2002)
Re: Besucherzähler
sahlender [at] gmail.com schrieb:
> Hallo Gruppe,
Hallo Frager,
> ich möchte einen für alle User sichtbaren Besucherzähler auf meine
> Homepage integrieren.
>
> Doch halt! So einfach ist das nicht. Der Zähler ist schon vorhanden,
> er soll aber als eine Art "Tacho" angezeigt werden.
>
> Also ungefähr so:
>
> [1] [1] [2] [1] (Beispiel für den 1121. Besucher)
>
> Jede einzelne Zahl soll durch ein IMG angezeigt werden.
>
> Die Variable sieht so aus: $zaehler=1121;
>
> Wie wandle ich also die Zahl 1121, welche in einer Datenbank bereits
> gespeichert wird, so um, so dass ich für jede Stelle ein IMG laden
> kann?
Ich gebe einfach an der entspechenden Stelle auf der Ausgabeseite den
Output der folgenden Funktion aus:
function counter_pic($counter)
{
$a_counts[] = '0';
$a_counts[] = '1';
$a_counts[] = '2';
$a_counts[] = '3';
$a_counts[] = '4';
$a_counts[] = '5';
$a_counts[] = '6';
$a_counts[] = '7';
$a_counts[] = '8';
$a_counts[] = '9';
$a_pic[] = '<img src="pics/0.gif" alt="0"> ';
$a_pic[] = '<img src="pics/1.gif" alt="1"> ';
$a_pic[] = '<img src="pics/2.gif" alt="2"> ';
$a_pic[] = '<img src="pics/3.gif" alt="3"> ';
$a_pic[] = '<img src="pics/4.gif" alt="4"> ';
$a_pic[] = '<img src="pics/5.gif" alt="5"> ';
$a_pic[] = '<img src="pics/6.gif" alt="6"> ';
$a_pic[] = '<img src="pics/7.gif" alt="7"> ';
$a_pic[] = '<img src="pics/8.gif" alt="8"> ';
$a_pic[] = '<img src="pics/9.gif" alt="9"> ';
return str_replace($a_counts, $a_pic, strval($counter));
}
Ist nicht schön, aber selten. $counter ist in diesem Fall die Zahl, die
den Zählerstand enthält.
Zu beachten ist hierbei
<http://www.php.net/manual/en/language.types.string.php#language.types.string.casting>
Explizit casten übrigens über die Funktion strval($counter) oder
(string)$counter, ist halt doch etwas sicherer als PHP wild casten
lassen wie es will.
> Beispiel:
> <img src="1.gif"><img src="1.gif"><img src="2.gif"><img src="1.gif">
Ja, genau sowas kommt dann raus
> Das ist jetzt mal so richtig knifflig, oder?
Nö.
MfG
Sebastian Wessel
--
Rad fahren ist auch nur eine Kettenreaktion.
Re: Besucherzähler
Sebastian Wessel schrieb:
Diese Informationen existieren bereits
> $a_counts[] = '0';
> $a_counts[]...
in diesem Array.
> $a_pic[] = '<img src="pics/0.gif" alt="0"> ';
> $a_pic[]...
Was verstrichst Du Dir davon diese doppelt vorzuhalten?
MfG, Ulf
Re: Besucherzähler
Ulf Kadner schrieb:
> Sebastian Wessel schrieb:
>
> Diese Informationen existieren bereits
>
>> $a_counts[] = '0';
>> $a_counts[]...
>
> in diesem Array.
>
>> $a_pic[] = '<img src="pics/0.gif" alt="0"> ';
>> $a_pic[]...
>
> Was verstrichst Du Dir davon diese doppelt vorzuhalten?
Du, das habe ich mich dann gestern Abend auch noch gefragt, als ich die
Möglichkeit von Thomas Hamacher gesehen habe.
Ich habs zumindest jetzt geändert - bis mir die nächste noch bessere
Lösung über den Weg läuft.
Ich werde aber mal noch die Performance austesten (mehr zur eigenen
Wissensdurststillung), auch wenn das Ergebnis wohl wie üblicherweise bei
so kleinen "Unebenheiten" im kaum messbaren Bereich liegen wird.
MfG
Sebastian Wessel
--
Da kann man mal sehen was passiert, wenn ich kurz nicht Offline bin ...
Re: Besucherzähler
Thomas Hamacher schrieb:
>function build_number($n) {
> return "<img src='$n.gif' alt='$n'>";
>}
>
>echo implode(array_map('build_number', str_split($zaehler)));
Warum denn so umständlich? ;-)
foreach(str_split($zaehler) as $n)
echo "<img src='$n.gif' alt='$n'>";
--
Wolfgang Fellger
Re: Besucherzähler
Wolfgang Fellger schrieb:
> Thomas Hamacher schrieb:
>> function build_number($n) {
>> return "<img src='$n.gif' alt='$n'>";
>> }
>> echo implode(array_map('build_number', str_split($zaehler)));
> Warum denn so umständlich? ;-)
> foreach(str_split($zaehler) as $n)
> echo "<img src='$n.gif' alt='$n'>";
ACK :)
Ich hab mich irgendwie auf den Einzeiler festgefahren. Ich hatte an
echo implode(array_map(create_function('$n', 'return "<img
src=\'$n.gif\' alt=\'$n\'>"), str_split($zaehler)));
gedacht, was aber leider zu lang wurde, weshalb ich die Lamda-Funktion
ersetzt hab. Ich hab aber wirklich noch nen Einzeiler, der noch
einfacher ist:
echo preg_replace('/\d/', '<img src="$0.gif" alt="$0">', $zaehler);
--
"Faulheit ist die Wurzel allen Fortschritts!"
(Inhalt eines Knallbonbons, 2002)
Re: Besucherzähler
Hallo Gruppe,
vielen Dank für die Antworten. Aber ich komme nicht weiter, weil die
Funktion str_split erst ab PHP5 geht. Ich habe aber nur PHP4.
Kann mir da hoch jemand helfen?
Gruß Stephan
Re: Besucherzähler
sahlender [at] gmail.com schrieb:
> vielen Dank für die Antworten. Aber ich komme nicht weiter, weil die
> Funktion str_split erst ab PHP5 geht. Ich habe aber nur PHP4.
Tja, selber schuld. Darf ich fragen warum du nicht updatest?
> Kann mir da hoch jemand helfen?
if(!function_exists('str_split')) {
function str_split($str, $len = 1) {
$tokens = array();
for($i = 0, $n = strlen($str); $i < $n; $i += $len) {
$tokens[] = substr($str, $i, $len);
}
return $tokens;
}
}
--
"Faulheit ist die Wurzel allen Fortschritts!"
(Inhalt eines Knallbonbons, 2002)
Re: Besucherzähler
sahlender [at] gmail.com schrieb:
> vielen Dank für die Antworten. Aber ich komme nicht weiter, weil die
> Funktion str_split erst ab PHP5 geht. Ich habe aber nur PHP4.
Selber schuld. Warum updatest du nicht?
> Kann mir da hoch jemand helfen?
Ich hab doch einen Einzeiler gepostet, der ohne str_split auskommt.
Liest du die Beiträge auf die du antwortest auch?
> echo preg_replace('/\d/', '<img src="$0.gif" alt="$0">', $zaehler);
Ansonsten kannst du dir die fehlende Funktion auch einfach selber bauen,
falls du meine erste Lösung oder die von Wolfgang verwenden willst.
if(!function_exists('str_split')) {
function str_split($str, $len = 1) {
$tokens = array();
for($i = 0, $n = strlen($str); $i < $n; $i += $len) {
$tokens[] = substr($str, $i, $len);
}
return $tokens;
}
}
--
"Faulheit ist die Wurzel allen Fortschritts!"
(Inhalt eines Knallbonbons, 2002)
Re: Besucherzähler
Vielen Dank an alle, welche geholfen haben mein Problem zu lösen.
Jetzt klappt alles!
Trotz PHP4, so einfach updaten kann ich nicht, das kann ja nur der
Provider. Und wenn der nicht will...
Gruß Stephan,
Re: Besucherzähler
Am 5. Januar 2008 schrieb sahlender [at] gmail.com:
> Jetzt klappt alles!
>
> Trotz PHP4, so einfach updaten kann ich nicht, das kann ja nur der
> Provider. Und wenn der nicht will...
.... dann wechselt man zur Konkurrenz.
Wer 3,5 Jahre nach Veröffentlichung von PHP 5 immer noch nur PHP 4
anbietet, kann nicht wirklich an Kunden interessiert sein.
Gruß
Mark
--
Marcel Reif: "Wenn Sie dieses Spiel atemberaubend finden, haben sie es
an den Bronchien."
Re: Besucherzähler
sahlender [at] gmail.com schrieb:
>Und wenn der nicht will...
kann man den Provider "updaten".
--
Wolfgang Fellger
Re: Besucherzähler
On 5 Jan., 22:24, "Wolfgang Fellger" <wfn... [at] web.de> wrote:
> sahlen... [at] gmail.com schrieb:
>
> >Und wenn der nicht will...
>
> kann man den Provider "updaten".
Tja, man muss immer den Einzelfall betrachten. Den Provider kann man
nicht einfach "updaten" bzw. wechseln, wenn der Provider gleichzeitig
der Kunde eines mittelständischen Unternehmens ist, welches wiederum
mein Gehalt zahlt... So kompliziert ist die Welt...
Gruß Stephan
Re: Besucherzähler
Am 05.01.2008 22:34 schrieb sahlender [at] gmail.com folgendes:
>> kann man den Provider "updaten".
>
> Tja, man muss immer den Einzelfall betrachten. Den Provider kann man
> nicht einfach "updaten" bzw. wechseln, wenn der Provider gleichzeitig
> der Kunde eines mittelständischen Unternehmens ist, welches wiederum
> mein Gehalt zahlt... So kompliziert ist die Welt...
und es gibt noch mehr Gruende, warum man nicht "sofort" den Provider
wechseln kann:
1.) der Kunde will nicht
2.) der Kunde versteht nicht, warum
3.) der Kunde will keinen, wenn auch nur kurzzeitigen Ausfall vom
laufendem Shop, Email...
meint Herbert
--
Herbert Dobsak, aus Kaisermuehlen in Wien
ein Geheimnis, das Sie schon immer wissen wollten:
Re: Besucherzähler
..oO(sahlender [at] gmail.com)
>Tja, man muss immer den Einzelfall betrachten. Den Provider kann man
>nicht einfach "updaten" bzw. wechseln, wenn der Provider gleichzeitig
>der Kunde eines mittelständischen Unternehmens ist, welches wiederum
>mein Gehalt zahlt... So kompliziert ist die Welt...
Man kann den Betreffenden aber zumindest auf die Füße treten und ihnen
eindringlich klar machen, daß sie Software einsetzen, welche das Ende
ihrer Lebenszeit überschritten hat und für die jeglicher Support so gut
wie eingestellt ist, von kritischen Updates innerhalb des nächsten
halben Jahres mal abgesehen. Darüberhinaus sollte man von einem fähigen
Hoster auch erwarten können, PHP 4 und 5 parallel betreiben zu können.
Möglichkeiten dafür gibt es mehrere und Zeit war auch mehr als genug.
YMMV.
Micha