• Hallo, ahbe den folgenden Code:

    Somit setzt er den $eintragimmer ans ende der Datei. Wie erreiche ich es, dass er den neu geschriebenen $eintrag an den Anfang der Datei setzt? Habe schon die Modi w und r+ probiert aber das hat nix gebracht.

    LG

  • PHP-Manual

    Zitat

    w+ "Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen."

    Also hätte es eigentlich mit "w" zum lesen reichen sollen ..

    OS: Ubuntu 7.04
    .ccc

  • also beide w-attribute überschreiben, was ja auch nich verwunderlich is...

    Zitat


    die Länge der Datei auf 0 Byte

    ich suche jedoch nach einer lösung die den $eintrag an den Anfang der Datei schreibt und den Rest der Datei beibehält, z.B. r+, aber da kommt diese Fehlermeldung, die ich nich verstehe

    Zitat


    Warning: fopen(news.txt) [function.fopen]: failed to open stream: Datei oder Verzeichnis nicht gefunden in /usr/export/www/hosting/solo/Eike/news.php on line 26

    Warning: fwrite(): supplied argument is not a valid stream resource in /usr/export/www/hosting/solo/Eike/news.php on line 30

    Warning: fclose(): supplied argument is not a valid stream resource in /usr/export/www/hosting/solo/Eike/news.php on line 31
    Momentan sind keine News vorhanden.

    Vllt liegt der Fehler in meinem Code? ich find nix...

    LG

  • -.-' stimmt, w/w+ wird nichts nützen, sorry!

    Frage: Existiert bei "r+" das file news.txt schon? Wenn nein, einfach eine leere Textdatei mit dem Namen "news.txt" erstellen.
    Dann sollte es eigentlich funktionieren.

    OS: Ubuntu 7.04
    .ccc

  • Ich nehm allerdings nicht an, dass das an "r+" liegt, denn wenn du hier guckst, siehst du, dass ich "a+" verwende.
    Im PHP-Manual steht zwischen r+ & a+ kein Unterschied, ausser die Cursorposition (Anfang/Ende). Und mein Script funktioniert soweit.
    Ich schätze es liegt an einem anderen Problem. Poste doch mal deinen Code.

    Im übrigen würde ich dir zu Datenbanken raten, die sind nicht so schwer zu bedienen, oder aber pro News eine txt anlegen.

    OS: Ubuntu 7.04
    .ccc

  • Eingabe:

    Code
    <form action="news.php" method="post">
    <textarea  name="eintrag" rows="20" cols="60"><div style="border: 1px dashed; width: 500px;" ><div style="margin-left:10px; margin-right:10px"><div align="left">Datum & Titel</div><div align="left"><hr>Inhalt</div></div></div>
    </textarea>
    
    
    <input type="submit" value="Eintragen" name="eintragen">
    </form>

    Ausgabe

    Das Attribut welches net funktionieren will steht in der Ausgabe in Zeile 3, momentan "r+" .

    LG

  • Habe mir gedacht, die Datei nun zuerst zu öffnen, den Inhalt auszulesen, in einen String zu schreiben, und dann mit dem Verkettungsoperator "." eintrag und vorhandenen-Text zusammen in die Datei zu schreiben. Aber das geht net soo ganz wie ich dachte, wie würdet ihr das anstellen?

    LG

  • Evtl so:

    Code
    if(isset($eintragen)){
             $datei=fopen ("news.txt","a");
    	$datei=fread(fp,max);
    	$inhalt=$datei;
    	$daten=$eintrag.$inhalt;
    	fwrite ($datei,$daten);
    	fclose (datei);}
        if(file_exists("news.txt")){
        	readfile("news.txt");
           }

    ??

    LG