Text an den Anfang einer Datei schreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Text an den Anfang einer Datei schreiben

    Hallo!

    Habe eine (Anfänger)-Frage zu PHP:
    Bin gerade dabei, mir ein kleines Gästebuch zu basteln.

    Wie mache ich es, dass in nachfolgendem Script der Text nicht an das Dateiende angehängt wird, sondern an den Dateianfang geschrieben wird, ohne dass dabei der bereits existierende Text überschrieben wird?

    Habe für die "fopen"-Funktion keinen passenden Modus gefunden, vermute mal, dass ich daher mit "fopen" nicht das bezwecken kann, was ich möchte.

    Wer kann mir weiterhelfen?


    <?php
    $eintrag = $_POST ["eintrag"];
    $name = $_POST ["name"];
    $email = $_POST ["email"];
    $daten="Name: $name<br>\nE-Mail: <a href=mailto:$email>$email</a><br>\nEintrag: $eintrag<br><br>\n";
    $datenbank = "eintraege.dat";
    $datei = fopen($datenbank,"a");
    fwrite($datei, $daten);
    ?>

    Gruß Thomas.

  • #2
    Da du noch neu bist, weise ich dich kurz auf unsere [PHP]-Tags hin, die erleichtern das Lesen des PHP-Codes.

    Bin eigentlich sicher, dass wir das Thema schon hatten, poste dennoch schnell (nachdem ich selber kurz bei google gebrainstormt hab, was jeder andere genauso gut hätte machen könne )

    Datei einlesen, neuen Eintrag vorne vorhängen, Datei schreiben.

    Kommentar


    • #3
      Das Thema haben wir grde vor einer Stunde mit herrn SuperS durchgekaut, geh mal im Developer forum 5 beiträge nachunten.... wr irgendsoein sinnreciher Betreff wie "Kann mir jemand sagen wo der Fehler ist".
      Die Musikreview Seite

      hi, i'm a signature virus. copy me into your signature to help me spread.

      Kommentar


      • #4
        Das ging ja schnell


        Datei einlesen, neuen Eintrag vorne vorhängen, Datei schreiben.
        Genau hier liegt mein Problem, wie hänge ich den Eintrag vorne an und nicht hinten?

        Mit
        PHP-Code:
        $datei fopen("eintraege.dat","r+"); 
        schreibe ich zwar an den Anfang der Datei, aber der Rest ist dann Futsch - soweit bin ich also schonmal.

        Wie mache ich es also, dass zuerst die neuen Daten geschrieben werden und dann die bereits bestehende Datei angehängt wird?

        Das Thema haben wir grde vor einer Stunde mit herrn SuperS durchgekaut
        Habe ich mir durchgelesen, komme aber keinen Schritt weiter. Wäre also dankbar, wenn ich hier einen "Wink mit dem Zaunpfahl" bekommen könnte.
        Will nicht den fertigen Code hier gepostet haben, sondern eine Info, wie ich vorzugehen habe.

        Thomas

        Kommentar


        • #5
          Moment!

          Hi,

          du verstehst es falsch. Mit "vorne anhängen" meint er KEINEN Dateizugriff. Sondern:

          1. Du liest File (A) in Speicher
          2. Du schreibst deinen Text (B) in den Speicher davor
          3. Der gesamte Text (A+B) wird in ein File gespeichert.
          [Experten: Dass das nicht GENAU so IST - ist klar ]

          Noch für SuchFaule hier ein paar Zeilen Code:
          PHP-Code:
          //lesen
          $meintext="copy + paste in meinen code";
          $filename="dateiname.txt";
          $filehandle=fopen($filename,"r");
          $text=fread($filehandle,filesize("$filename"));
          fclose($filehandle);

          //Nun Dein Text Dazu
          $text $meintext."\n".$text;

          //schreiben
          $filehandle=fopen($filename,"w");
          fwrite($filehandle,$text);
          fclose($filehandle); 
          Hoffe geholfen zu haben.
          Zuletzt geändert von Beyond; 28.01.2004, 20:42.
          Gruss,
          Stefan

          Kommentar


          • #6
            @Beyond: auch hier ein kurzer Hinweis auf die [PHP]-Tags.

            Kommentar


            • #7
              oops.

              Ok.
              Danke!

              Schnell noch eingefügt
              Gruss,
              Stefan

              Kommentar


              • #8
                liest sich doch vieeeel besser. Dank dir!

                Kommentar


                • #9
                  @Beyond:

                  Vielen Dank, jetzt funzt es

                  Gruß Thomas.

                  Kommentar

                  Lädt...
                  X