$fp=fopen("count.txt", "r+");
Zuerst öffnet es die Datei count.txt mit dem Befehlt fopen. Wir
verwednen die Funktion fopen mit 2 Argumenten/Parameter:
Das erste Argument gibt den Namen der Datei an, die geöffnet werden
soll (also "count.txt"). Das zweite Argument, das durch einen
Beistrich getrennt ist gibt den Modus an, in dem wir die Datei öffnen.
Dabei bedeutet “r+“, dass die Datei zum Lesen (der Besucherzahl)
und zum Schreiben geöffnet wird.
Zurückgeliefert wird ein Verweis auf die Datei am Server: $fp (die
Variable wurde hier $fp für File-Pointer genannt, sozusagen ein
“Fingerzeig” auf die physische Datei count.txt am Server.
Über $fp können dann weitere Dateibearbeitungen erfolgen).
Um eben mit Dateien überhaupt zu arbeiten, muß man sie “wie
eine Konserverbüchse öffnen” und kann dann erst Operationen
mit ihrem Inhalt durchführen (lesen aus Datei/schreiben in Datei/...).
Der Filepointer gibt weiters darüber Auskunft ob man sich zB am
Ende der Datei befindet oder am Anfang - das ist wichtig, falls man
zB in einer Datei am Ende etwas hinzufügen will;
Da wir den Parameter “r+” gewählt haben, befinden wir
uns am Anfang der Datei; für weitere Parameter siehe:
http://www.php.net/fopen
'r+' Open for reading and writing;
place the file pointer at the beginning of the file.
Im nächsten Befehl fgets($fp,
1024); lesen wir von der Datei über unseren File-Pointer
$fp, der ja auf die Datei “count.txt” zeigt maximal 1024
Zeichen (dies sollte doch eigentlich für jede Homepage reichen
- sprich eine Zahl mit 1024 Stellen wäre möglich). Würde
dort 1, 2 oder 3 stehen ginge der Counter nur bis 9 oder 99 etc. da
nur “soundsoviele” Zeichen vom Beginn der Datei eingelesen
würden – dieser Wert ist eben das 2te Argument.
fgets liefert als Rückgabewert einen String, der durch die Zuweisung:
$count = fgets($fp, 1024); an die Variable $count übergeben wird.
Der Rest ist nicht mehr schwer, wir addieren die Zahl 1 zu unserm eingelesnen
Wert $count mit:
$count = $count+1;
gehen dann mit fseek($fp,0); wieder an den Anfang der Datei. Mit fseek
läßt sich also der Filepointer an die Anfangsposition (0)
der Datei setzen.
Nun schreiben wir mit fputs den Wert wieder in die Datei zurück.
Da alle Operationen mit der Datei durchgeführt sind, können
wir sie wieder mit close schließen.
Der Rest ist wie gehabt html-code und das echo-Statement, das den erhöhten
$count Wert ausgibt.
Beim hochladen der Dateien (count.txt und count.php) auf den Server ist zu beachten, dass in die Datei count.txt beschrieben werden können muß, d.h. nach dem upload müssen wir die Dateirechte der Datei count.txt auf Schreiberlaubnis setzen. Würden wir dies nicht machen, könnte das php Skript die Datei nicht im Schreibmodus “r+” öffnen, und es würde z.B. folgender Fehler als erstes auftreten:
Warning: fopen("/home/intern/public_html/webcounter/count.txt","r+") - Permission denied in /home/intern/public_html/webcounter/count.php on line 2