Daten zwischenspeichern zum ändern (Textdatei)
Patrick
- php
0 michel gelin0 Thomas Schmieder0 Ara
Hoi,
ich hab folgendes Problem,
ich weiß is schwachsinn aber ich muss !! bei einem Gästebuch ne Administration einbauen. Das Gästebuch basiert auf eine Textdatei. Diese Textdatei lese ich dann Zeilenweise mit einem Array aus. Dann hab ich mir gedacht lass ich mir den Inhalt der Textdatei so ausgeben das ich ihn verändern kann, also hab ich den Inhalt per array und for-schleife in die Textarea eingelesen und das zeigt er auch an. Doch nun die Frage...
Wie kann ich wenn ich Änderungen vornehme in dem Inhalt in der Textarea das wieder zurückspeichern????
Ich hab schon so viel im Kopf gehabt aber nix hinbekommen hehe...
das letze was ich versucht habe war 2 Textdateien.. die eine is das Gästebuch und die wird ausgegeben... dann schreib ich den inhalt in die 2. und lösche den inhalt der 1. um sie somit leer zu haben und die Änderung dann wieder zu speichern .. naja blablub alles umständlich hehe :=)
kann mir da wer helfen???
wäre echt nett
Patrick
Hi Patrick,
Ich hab schon so viel im Kopf gehabt aber nix hinbekommen hehe...
das letze was ich versucht habe war 2 Textdateien.. die eine is das Gästebuch und die wird ausgegeben... dann schreib ich den inhalt in die 2. und lösche den inhalt der 1. um sie somit leer zu haben und die Änderung dann wieder zu speichern .. naja blablub alles umständlich hehe :=)
Habe eigentlich das selbe Problem und bin zur selben schlussfolgerung gekommen. Ich weiss echt nicht ob es eine gescheitere Variante gibt. Das selbe Problem ergibt sich auch wenn man datensätze im textfile in der reihenfolge ändern will.
Gruss
Michel Gelin
Hallo,
Daten aus der Textarea empfangen in $textarea:
function clean($var)
{
$var = str_replace(CRLF,RET,$var); // kommt vom Windows-Client
$var = str_replace(CR,RET,$var); // kommt vom MAC-Client
$var = str_replace(LF,RET,$var); // kommt vom Unix-Client
$var = str_replace(SEP,WS,$var); // Variablen-Seperator entfernen
$var = stripslashes($var); // Magic-Quotes entfernen
return $var;
}
SEP = Seperator, der zur Feldtrennung benötigt wird, hier chr(4)
RET = eigenes Returnzeichen, hier chr(127)
LF = chr(10)
CR = chr(13)
CRLF = chr(13).chr(10)
WS = Whitespace = " " oder
Wenn die Daten aus der Textarea kommen, muss man erstmal die Zeilenümbrüche gegen für die Textdatei ungefährliche ersetzen. Außerdem muss man dafür sorgen, dass die Textarea nicht das in der Textdatei verwendete Feldtrennzeichen enthält.
Dann kannst Du die Daten speichern
$record=clean($feld1).SEP.clean($feld2).SEP.clean($feld3).LF; // für Linux
...
fwrite($fh,$record,strlen($record));
...
Nach dem Lesen:
function restore($var)
{
$var = str_replace(RET,"\n",$var); // Umbruch wiederherstellen
$var = htmlentities($var);
return $var;
}
$recordlist = file($dateiname);
$record = explode(substr($recordlist[$n],-1),SEP);
Dann kannst Du die Daten wieder an die Felder zuweisen.
Das substr( ...,-1) wird benötigt, um das Newlinezeichen der Datei wieder abzuschneiden. Bei Windows musst Du dort -2 benutzen und als Zeilenendezeichen entsprechend CRLF anhängen vor dem Wegschreiben.
Liebe Grüße aus http://www.braunschweig.de
Tom
ahh super cool danke habs nu hinbekommen ;))))
mfg
Ara