Datei rewind erzeugt Warning (not valid Stream)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
alte datei
anfang
argument
code
datei
ende
eventueller inhalt
explizit auslesen
folgende fehler
funktion
glauben
grad
inhalt
kurzes beispiel
normale verarbeitung
not
parameter
speichern
string
text
-
Habe ein ziemlich großes Problem.
Arbeite grade an einem Newsletterscript, welches über Dateien läuft.
hierbei kommt natürlich die ganz normale verarbeitung von Dateien:
$datei = fopen("e-mail-adressen.txt","a+"); $datei .= $newcontent; $newdatei = $datei; rewind($datei); fwrite($datei, $newdatei); fclose($datei);
Nun werden aber folgende fehler ausgegeben:
Warning: rewind(): supplied argument is not a valid stream resource in /var/www/html/web499/html/contact_form/verify.php on line 19
Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/html/web499/html/contact_form/verify.php on line 20
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/web499/html/contact_form/verify.php on line 21
Alle variablen die dem Script zugesendet werden sind vorhanden und die zu verändernde Datei kann ich auch öffnen.
Was ist der Fehler? Gibt es vielleicht eine alternative variante zu diesen befehlen?
Hoffe auf hilfe
Daniel -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
sun-flash schrieb:
ist rewind() nötig??? (kenne diese funktion garnicht) aber ich benutze immer fread() (liest die datei und gibt einen string zurück (wo du dann text hinterschreiben kannst) und speicher dann ab...
könntest du ein kurzes beispiel geben? -
$dateihandle = fopen("datei.txt","r"); $dateistring = fread($dateihandle, 200000); $dateistring .= 'dein text';
und dann in neue oder alte datei schreiben
musst bei fopen() noch drauf achten dass du (evtl) auch schreiben willst (-> www.php.net , kenne da grade die parameter nich so genau)
greetz -
sun-flash schrieb:
$dateihandle = fopen("datei.txt","r"); $dateistring = fread($dateihandle, 200000); $dateistring .= 'dein text';
und dann in neue oder alte datei schreiben
musst bei fopen() noch drauf achten dass du (evtl) auch schreiben willst (-> www.php.net , kenne da grade die parameter nich so genau)
greetz
Mit welchem befehl schreibe ich das ganze den in eine neue Datei?
fwrite wird ja leider auch Blockiert.
Warum auch immer...
-
ich glaube das lag daran, dass deine $datei kein string gewesen ist ($datei gab nur an welche datei geöffnet werden soll und ist nicht der inhalt der datei, desswegen muss man es auch nochmal explizit auslesen(fread());))
nach fread() und ".=" sollte das dann funktionieren
btw der fopen parameter sollte glaube ich "r+" sein;)
greetz -
Nur noch einmal zur übersicht zu fopen...
welche Flag bedeutet was?
r Datei wird nur zum Lesen geöffnet, der Dateizeiger wird auf den Anfang der Datei gesetzt.
r+ Datei wird zum Lesen und Schreiben geöffnet, der Dateizeiger wird auf den Anfang der Datei gesetzt.
w Datei wird nur zum Schreiben geöffnet, der Dateizeiger wird auf den Anfang der Datei gesetzt. Sofern die Datei bereits besteht, wird die Größe auf 0 Bytes gesetzt (d.h. ein eventueller Inhalt wird überschrieben). Sofern die Datei nicht existiert, wird diese neu angelegt.
w+ Datei wird zum Lesen und Schreiben geöffnet, der Dateizeiger wird auf den Anfang der Datei gesetzt. Sofern die Datei bereits besteht, wird die Größe auf 0 Bytes gesetzt (d.h. ein eventueller Inhalt wird überschrieben). Sofern die Datei nicht existiert, wird diese neu angelegt.
a Datei wird nur zum Schreiben geöffnet, der Dateizeiger wird an das Ende der Datei gesetzt (d.h der Inhalt wird nicht überschrieben, sondern neuer Inhalt am Dateiende hinzugefügt). Sofern die Datei nicht existiert, wird diese neu angelegt.
a+ Datei wird zum Lesen und Schreiben geöffnet, der Dateizeiger wird an das Ende der Datei gesetzt (d.h der Inhalt wird nicht überschrieben, sondern neuer Inhalt am Dateiende hinzugefügt). Sofern die Datei nicht existiert, wird diese neu angelegt. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage