Counter mit fester Stellenanzahl
die meisten counter die man sieht haben eine feste anzahl an stellen da es von der optik her einfach gut aussieht. ich würde sagen 6-8 stellen ist ein gutes maß. wobei man natürlich zu jeder zeit den counter erweitern kann. es würde jedoch keinen sinn ergeben einen counter 12 oder 15 stellig zu machen da man die anzahl an besuchern auf einer seite erst mal erreichen muß. so nun schaun wir uns zuerst mal wieder den code an.
|
PHP Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<?php
if(!file_exists("count.txt"))
{
fopen("count.txt","a");
}
$counter=fopen("count.txt","r+");
$aufruf=fgets($counter,100);
if(!$countcookie OR $countcookie<time()-3600)
{
setcookie("countcookie",time());
$aufruf=$aufruf+1;
rewind($counter);
fputs($counter,$aufruf);
}
$aufruf=(string) $aufruf
$temp=0
for($i=0;$i<6;$i++)
{
if(6-$i>strlen($aufruf))
{
echo "<img src='gfx1_0.gif'>";
}
else
{
echo "<img src='gfx1_".$aufruf[$temp].".gif'>";
$temp=$temp+1
}
}
?>
|
erklärung
wie wir sehen hat sich hier nun die for schleife ein wenig geändert. diese wird jetzt fix 6 mal durchlaufen. dadurch erreichen wir das der counter immer 6 stellen hat. in der if bedingung wird nun geprüft ob ob die länge des aktuellen counterstandes höher oder nidriger als die maximale counterlänge abzüglich des positionszählers $i. nehmen wir wieder das beispiel eines counterstandes von 1234. im ersten durchlauf ist $i noch 0 und somit lautet die if bedingung "ist max stellenzahl (6) abzüglich positionszähler $i (0) größer als gesammtlänge des counters?". die bedingung ist erfüllt und somit wird die grafik für die null ausgegeben. im zweiten durchlauf ist die bedingung wieder erfüllt da 5 größer ist als 4. im dritten durchlauf nun ist 4 nicht mehr größer als 4 und somit wird der else-zweig der bedingung aufgerifen. sort wird nun anhand der hilfsvariable $temp das bild für die erste stelle unseres counters geladen. die hilfsvariable wird nun noch um 1 erhöht um im nächsten durchlauf auf die nächste stelle zuzugreifen. das ergebnis der for schleife ist somit "001234" in grafischer form.
so, hier schließe ich nun das thema counter ohne datenbank ab. sollten fragen zu den einzelnen teilen auftreten einfach melden. ab teil 5 wird nun eine mysql datenbank mit eingesetzt um weitere möglichkeiten eines counters zu nutzen.