PHP - Parameter bei fopen - PROB ERBITTE HILFE

F

fruehbeet

HI@all!

Also mein Problem ist, dass wenn ich mit dem Parameter r+ eine Datei öffne und etwas hineinschreibe, dass er alles überschreibt was vorher drinnen war! Wie kann ich das verhindern?


Yours Beet!
 
folgende Parameter sind möglich:

"r" - öffnet die Datei zum Lesen und setzt den Dateizeiger auf den Anfang der Datei

"r+" - öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei

"w" - öffnet die Datei nur zum Schreiben, setzt den Dateizeiger auf den Anfang der Datei und die Dateilänge auf 0 Byte

"w+" - öffnet die Datei zum Lesen und Schreiben, setzt den Dateizeiger auf den Anfang der Datei und die Dateilänge auf 0 Byte

"a" - öffnet die Datei zum Schreiben und setzt den Dateizeiger an das Ende der Datei und fügt weitere Zeichen an

"a+" - öffnet die Datei zum Lesen und Schreiben, setzt den Dateizeiger an das Ende der Datei und fügt weitere Zeichen an

Zusätzlich kann der Buchstabe "b" hinzugefügt werden, der die Behandlung von Binärdaten erlaubt.


Das was Du brauchst ist dann "a" bzw."a+"


alles klar?

Gruß
Dunsti
 
genau, nimmst du a+ geht das schon, aber wozu einfach wenn es auch kompliziert geht, du läßt also das r+ stehen und testest dann wo das ende der datei is und verschiebst dann den zeiger an die letzte stelle lol
<sorry for spamming>
Pasdan
 
Zusätzlich kann der Buchstabe "b" hinzugefügt werden, der die Behandlung von Binärdaten erlaubt.

Unter win98 ist das nötig um in Datein schreiben zu können sonst geht glaub ich nichts.


Tob
 
Ich habe konkret geschrieben:


$datei=fopen("db.txt","r+");
fwrite($datei, "$dbeintrag");
fclose($datei);

und mein problem war, dass bei einem zweiten ausführen der Funktion, der Text der ersten Ausführung überschrieben wurde!

Wie kann ich das nun verhindern?

Trotzdem schonmal danke für die Hilfe!
 
und mein problem war, dass bei einem zweiten ausführen der Funktion, der Text der ersten Ausführung überschrieben wurde!

Wie kann ich das nun verhindern?


sorry, aber lesen solltest Du schon können :--

was hab ich denn geschrieben, hä? :{}

Gruß
Dunsti
 
Schreib es einfach um in

$datei=fopen("db.txt","a");
fwrite($datei, "$dbeintrag");
fclose($datei);
 
Danke für die Hilfe! Es ist also nicht möglich in eine Datei zu schreiben, den Text am Anfang einzufügen ohne die Daten zu überschreiben? Schade dann muss ich mein Script umschreiben!
 
ach soooooooooo ... na danan sag doch gleich was Du willst :rolleyes:

das geht so:

zuerst die Datei in eine Variable lesen. Dann den "neuen" Inhalt in die Datei schreiben und anschließend den alten Inhalt, den Du vorher eingelesen hast.

hilft das?

Gruß
Dunsti
 
Hi Dunsti!

Mit in die Datei lesen meinst du doch...

$alt=fread($datei,filesize($datei));

ich habe jetzt versucht mit r+ die Datei zu öffnen auszulesen und den neuen Text einzufügen!
dann habe ich sie geschlossen und mit a+ ein 2. Mal geöffnet und den alten Text reingeschrieben! Hat nicht gefunzt!
auch mit
$eintrag=$neu.$alt;
ging es nicht!

Kannst du mir einen anderen Lösungsansatz geben?
 

Neue Beiträge

Zurück