Quellcode der Funktionsbibliothek
<?
/*
Das ist die Datei header.inc. Sie enthält diverse Variablen und
Funktionen für das Gästebuch, die von mehreren anderen PHP-Dateien
gebraucht werden. Daher werden sie in dieser Datei formuliert und
später von den anderen Dateien eingebunden.
*/
// Variablen die wir immer brauchen
$datadir="Gastbuch/"; // Das Gastbuchverzeichnis
$buchfile=$datadir . "gastbuch.txt"; // Die Gastbuchdatei
$trenner="+++___+++"; // Trennlinie zwischen Einträgen
// Die folgende Funktion schreibt einen Eintrag ins Gastbuch.
// Sie erwartet zwei Parameter, den Namen des Autors und den Eintrag selbst.
function add_entry($name,$eintrag){
global $trenner; // Bezug auf globale Variablen
global $buchfile; // trenner und buchfile
// Wir lesen Datum und Uhrzeit
$zeit=getdate(time());
// und verwandeln das in einen lesbaren Satz.
$ts=sprintf("%02d.%02d.%d - %02d:%02d",$zeit[mday],$zeit[mon],$zeit[year],$zeit[hours],$zeit[minutes]);
$fp=fopen($buchfile,'a'); // Öffnen der Datei zum Anhängen
if ($fp){ // Wenn es geklappt hat
fputs($fp,$trenner . "\n"); // schreiben wir den Trenner
fputs($fp,$ts . "\n"); // die Zeitangabe
fputs($fp,$name ."\n"); // den Namen und
fputs($fp,$eintrag . "\n"); // den Eintrag in die Datei
fclose($fp); // schließen sie wieder und
return 1; // geben eine 1 zurück.
} else return 0; // wenn nicht geben wir eine 0 zurück.
}
// Die folgende Funktion ließt einen bestimmten, durch eine Nummer
// bezeichneten Eintrag aus der Datei. Die Nummer wird der Funktion
// als Parameter mitgegeben. Der erste Eintrag hat die Nummer 0
function get_entry($nr){
global $trenner; // Bezug auf die globalen Variablen
global $buchfile; // trenner und buchfile
$i=0; // Zählervariable auf 0 setzen.
$fp=fopen($buchfile,'r'); // Öffnen der Datei zum Lesen
if($fp){ // Wenn es geklappt hat
while ($line = fgets($fp, 4096)){ // Wir lesen Zeilen aus der Datei bis zu ihrem Ende
if (strstr($line,$trenner))$i++; // Wenn wir auf eine Trennlinie
// stoßen, wird der Zähler um eins
// erhöht.
if ($i == $nr){ // Wenn der Zähler die Nummer des
$a[]=$line; // gewünschten Eintrags ist, lesen
} // wir die Zeilen in ein Array
}
fclose($fp); // Schließen der Datei
return $a; // Das Array, das den gewünschten
// Eintrag enthält wird
// zurückgegeben.
} else return 0; // Wenn es nicht geklappt hat oder
// kein Eintrag dieser Nummer
// gefunden wurde, geben wir 0
// zurück.
}
// Die nächste Funktion zählt die Einträge des Gästebuchs und gibt
// die Anzahl der Einträge als Funktionswert zurück. Sie erwartet
// keine Parameter.
function count_entry(){
global $trenner; // Bezug auf die globalen Variablen
global $buchfile; // trenner und buchdatei
$i=0; // Zählervariable auf 0 setzen
if (!file_exists($buchfile)) return 0;// Wenn die Datei nicht existiert
// geben wir 0 zurück und beenden
// damit die Funktion.
$fp=fopen($buchfile,'r'); // Öffnen der Datei zum Lesen
if($fp){ // Wenn es geklappt hat
while ($line = fgets($fp, 4096)){ // lesen wir Zeilenweise bis zum Ende
if (strstr($line,$trenner))$i++; // Wenn wir einen Trenner lesen
// wird der Zähler um eins erhöht
}
fclose($fp); // Schließen der Datei
return $i; // Wert des Zählers zurückgeben
} else return 0; // Im Fehlerfall wird 0
// zurückgegeben.
}
?>