Frage zu PHP
Jojo
- php
Also, ich habe folgenden Quelltext, der in Verbindung mit einer Datei "hits", in dem der aktuelle Status zu finden ist, einen simplen Counter darstellt.
<?php
// (1): Die Datei mit den Daten wird
// geoeffnet, ausgelesen und vorerst wieder
// geschlossen.
$filename = "hits";
$datafile = @fopen($filename, "r");
if ($datafile <=0)
{
echo "Datenfile nicht gefunden oder kaputt!";
exit;
}
else
{
$content = fgets($datafile, "12");
fclose($datafile);
}
// (2): Die ausgelesene Zahl wird um 1 er-
// hoeht und ausgegeben.
++$content;
echo $content;
// (3): Die Datei wird abermals geöffnet
// und die Daten mit den neuen überschrieben
$datafile = @fopen($filename, "w");
flock($datafile, "2");
fputs($datafile, $content );
flock($datafile, "3");
fclose($datafile);
?>
Meine frage, was bedeuten die Zahlen in den Befehlen?
Bsp.:
content = fgets($datafile, "12");
fclose($datafile);
}
// (2): Die ausgelesene Zahl wird um 1 er-
// hoeht und ausgegeben.
++$content;
echo $content;
// (3): Die Datei wird abermals geöffnet
// und die Daten mit den neuen überschrieben
$content = fgets($datafile, "12");
flock($datafile, "2");
flock($datafile, "3");
Was genau bedeutet denn am Anfang des Scripts, "$datafile = @fopen($filename, "r");" und/oder auch "$content = fgets($datafile, "12");"? Wie muss ich das verstehen, bzw. wenn ich das Script als Text lesen möchte, wie muss ich das 'übersetzen'?
Danke für Eure Antworten!
Hallo,
fopen: http://de.php.net/fopen
fgets: http://de3.php.net/fgets
Ob du flock überhaupt benötigst, weiß ich nicht.
flock: http://de3.php.net/flock
Viele Grüße
Flo
Was genau bedeutet denn am Anfang des Scripts, "$datafile = @fopen($filename, "r");"
Das erstellt den Zeiger $datafile auf die Datei. @ heißt, wenn ein Fehler auftritt, ihn nicht auszugeben. "r" ist das Zugriffsverfahren, in diesem Fall "nur lesen".
Den Zeiger brauchen andere Funktionen, damit die wissen, mit welcher Datei sie ihre Aufgabe erledigen sollen. fopen öffnet quasi einen Kanal zu der Datei und speichert dessen Daten in $datafile.
und/oder auch "$content = fgets($datafile, "12");"? Wie muss ich das verstehen, bzw. wenn ich das Script als Text lesen möchte, wie muss ich das 'übersetzen'?
Hier ist zum Beispiel eine Anwendungsmöglichkeit von $datafile, wie ich es oben beschrieben habe.
fgets liest eine Zeile aus der Datei des angegebenen Dateihandlers und speichert es in diesem Fall in $content. Und zwar wird im zweiten Paramter angegeben, wie viele Bytes der Zeile eingelesen werden.
Ich hoffe ich konnte helfen.
MfG
Turna
Okay, hat mir sehr geholfen es zu verstehen. Danke auch für die Links.
Thema ist soweit geklärt, danke!