Hi dedlfix!
Jetzt habe ich mich daran gemacht, etwas herumzuexperimentieren, habe aber ein kleines Problem.
Mit folgendem Code erreiche ich genau das, was ich will, nämlich daß eine Zahl in einer txt-Datei mit jedem Aufruf einer Testseite um 1 größer wird:
<?php
$handle=fopen("testfile.txt","r");
$inhalt=fgets($handle);
$inhaltneu=$inhalt+1;
fclose($handle);
echo"<p>In der Datei steht: ".$inhalt."</p>\n";
echo"<p>Der NEUE Inhalt wäre: ".$inhaltneu."</p>\n";
$handle=fopen("testfile.txt","w");
fputs($handle,$inhaltneu);
fclose($handle);
?>
Wenn ich mir die txt-Datei nach mehreren Seitenaufrufen öffne, steht auch wirklich nur eine Zahl drin, nämlich die aktuelle. Das heißt, mit oben geschriebenen Code erreiche ich genau das, was ich will, nämlich das der alte Inhalt überschrieben wird mit dem neuen.
Dann habe ich mir gedacht, ich könnte den Code schlanker machen und nur ein mal das txt-File öffnen und schließen. Im php-Buch steht bei der fopen-Funktion, daß sowohl w+, a+ als auch r+ zum Lesen UND Schreiben berechtigt. Das würde dann so aussehen:
<?php
$handle=fopen("testfile.txt","w+");
$inhalt=fgets($handle);
$inhaltneu=$inhalt+1;
fputs($handle,$inhaltneu);
fclose($handle);
echo"<p>In der Datei steht: ".$inhalt."</p>\n";
echo"<p>Der NEUE Inhalt wäre: ".$inhaltneu."</p>\n";
?>
Das bewirkt aber, daß ich bei JEDEM Aufruf der Seite stehen habe:
In der Datei steht:
Der NEUE Inhalt wäre: 1
Und auch nach mehrmaligen Aufruf ist immer noch eine 1 in der txt-Datei.
Wenn ich eine 13 in die txt-datei schreibe und die Seite aufrufe, steht anschließend auch wieder eine 1 drin und die AUsgabe bleibt wieder immer die selbe.
Mit einem r+ oder a+ ändern sich die Zahlen völlig chaotisch.
Wo ist mein Denk-/Programmierfehler???
Gustav Gans