Text- und graphischer Counter mit PHP

$fp=fopen("count.txt", "r+");

Zuerst öffnet es die Datei count.txt mit dem Befehl fopen. Wir verwenden 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, muss 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 z.B. am Ende der Datei befindet oder am Anfang - das ist wichtig, falls man z.B. 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 unserem eingelesenen Wert $count mit:
$count = $count+1;

gehen dann mit fseek($fp,0); wieder an den Anfang der Datei. Mit fseek lässt 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 muss, 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/http://www.dma.ufg.ac.at/assets/8941/intern/public_html/webcounter/count.txt","r+") - Permission denied in /home/http://www.dma.ufg.ac.at/assets/8941/intern/public_html/webcounter/count.php on line 2