kostenloser Webspace werbefrei: lima-city


Datei rewind erzeugt Warning (not valid Stream)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    goldeneye

    Kostenloser Webspace von goldeneye

    goldeneye hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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...
  4. Autor dieses Themas

    goldeneye

    Kostenloser Webspace von goldeneye

    goldeneye hat kostenlosen Webspace.

    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?
  5. $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
  6. Autor dieses Themas

    goldeneye

    Kostenloser Webspace von goldeneye

    goldeneye hat kostenlosen Webspace.

    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...
    :nosmile:
  7. 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
  8. 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.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!