Datei wird nicht überschrieben
quasi_modem
- php
Hallo,
folgendes Problem:
ich öffne eine Datei und schreibe sie neu. Das Problem ist, dass die Datei mal neu geschrieben wird, und mal nicht. Ein System, wieso dies so ist, erkenne ich nicht.
Der banale Code:
$content = "irgendwas";
$fp = fopen($path,"w");
echo "<span style="font-size:10px;">$fp</span>";
fputs($fp,$content);
fclose($fp);
Wie kann ich sicherstellen/überprüfen, dass die Datei garantiert überschrieben wird und nicht nur manchmal? nixraff...
Vielen Dank!
quasi_modem
Hallo,
Wie kann ich sicherstellen/überprüfen, dass die Datei garantiert überschrieben wird und nicht nur manchmal? nixraff...
Indem du
fputs($fp,$content);
als Bedingung setzt und dementsprechend eine Meldung ausgibst.
Gruß
Lachgas
Hello,
Wie kann ich sicherstellen/überprüfen, dass die Datei garantiert überschrieben wird und nicht nur manchmal? nixraff...
Indem du
fputs($fp,$content);
als Bedingung setzt und dementsprechend eine Meldung ausgibst.
Das 'Plattmachen' geschieht aber schon beim fopen($dateiname,'w');
Je nach Betriebssystem kann die Datei aber mandatorisch (durch einen anderen Prozess) gesperrt sein.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
ich öffne eine Datei und schreibe sie neu. Das Problem ist, dass die Datei mal neu geschrieben wird, und mal nicht. Ein System, wieso dies so ist, erkenne ich nicht.
Der banale Code:
$content = "irgendwas";
$fp = fopen($path,"w");
echo "<span style="font-size:10px;">$fp</span>";
fputs($fp,$content);
fclose($fp);
Und gibt es Fehlermeldungen?
Grundregel: Zum Entwickeln ALLE Fehlermeldungen einschalten.
<?php ### Script.php ###
error_reporting(E_ALL);
ini_set('track_errors','1');
ini_set('display_errors','1');
...
Und dann die Fehler auch abfragen!
in $php_errormsg sthet immer die letzte Fehlermeldung der letzten IO-Operation, wenn es gesetzt ist.
if(!empty($php_errormsg)) echo "<p>$php_errormsg</p>\n";
Wie stellst Du denn fest, ob Du ein gültiges Handle bekommen hast?
Wie stellst Du fest, welches Funktionsergebnis fputs() liefert?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi Quasi,
Du kannst auch nen kleinen Umweg nehmen... so wird die Datei sicher überschrieben:
Du legst den Content in eine neue Datei ab und löscht danach die alte und benennst die neue Datei um.
Ungefähr so:
$content = "irgendwas";
$fp = fopen("neuedatei.txt","w");
fputs($fp,$content);
unlink ("dateialt.txt");
rename ("neuedatei.txt","dateialt.txt");
Aber vergiss bitte nicht die neue Datei zu sperren, das nicht mehrere Zugriffe gleichzeitig stattfinden können....
Grüße Bobby