Stefaan: schreiben in eine datei....

Servus!

Ich bin gerade dabei, ein Gästebuch in PHP zu schreiben, dass die Daten in eine normale Datei als ASCII abspeichert. Das auslesen aus dieser Datei... ja, kein Problem. Nur wie muss ich fwrite angeben, dass die neu eingegeben Daten am Anfang der Datei drangehängt werden?

Zur Zeit siehts so aus:
$message="sadkjfh akdfjh asdkfh "
$vorhanden = fopen($path, "a");
fwrite ($vorhanden, $message);
fclose ($vorhanden);

Ich will nun, dass $message am Anfang der Datei drangehängt wird. Geht das? Wie kann ich das anstellen?

Wenn dieser String in der Datei gespeichert wird, wird der nächste String gleich hinten dran gefügt.
Zur besseren Übersicht wäre ein Absatz von Vorteil. Wenn ich an den String ein \n oder \r dranfüge, kommt dann im Editor immer ein schwarzes Rechteck.
Kann ich irgenwie eine Leerzeile einfügen?

Danke!

Grüße, Stefan

  1. Hi,

    Ich bin gerade dabei, ein Gästebuch in PHP zu schreiben, dass die
    Daten in eine normale Datei als ASCII abspeichert. Das auslesen
    aus dieser Datei... ja, kein Problem. Nur wie muss ich fwrite
    angeben, dass die neu eingegeben Daten am Anfang der Datei
    drangehängt werden?

    Auslesen, neu schreiben:

    $fid = fopen("datei","r");
    $inhalt = fread($fid,filesize("datei"));
    fclose($fid);

    $inhalt = "neuer inhalt\n\n" + $inhalt;

    $fid = fopen("datei","w");
    fwrite($fid,$inhalt);
    fclose($fid);

    Zur besseren Übersicht wäre ein Absatz von Vorteil. Wenn ich an
    den String ein \n oder \r dranfüge, kommt dann im Editor immer
    ein schwarzes Rechteck.

    Du erstellst die Dateien unter Linux/Unix und der Editor läuft unter
    Win? ,)
    Da kannst du dann gar nichts machen, weil die Zeichen-Formate sich
    leicht unterscheiden.

    mfg
    CK1

    1. hi ihr beide ;-)

      $inhalt = "neuer inhalt\n\n" + $inhalt;

      das soll bestimmt
      $inhalt = "neuer inhalt\n\n".$inhalt;
      heissen ;-)

      MfG Olli

      1. Danke euch recht herzlich!

        Problem gelöst!

        Stefan

    2. Hi,

      Da kannst du dann gar nichts machen, weil die Zeichen-Formate sich
      leicht unterscheiden.

      also ich hab mit "\r\n" ganz gute Erfahrung gemacht, die Linux-Seite mag das \r zwar eigentlich nicht,
      aber da man die Datei ja eh nur mit selbstgeschriebenem PHP-Zeugs verwurstet kann man das  
      einkalkulieren. (Den Browsern und dem WebServer ist es m.e. egal, ob und welche Zeilenenden da sind.)

      Plan B: Datei mit FTP im ASCII Modus übertragen, da wird das umgesetzt.
      (Win: "\r\n";  Mac:"\r";  Unix:"\n"; )

      Gruss,
      Carsten

      1. Hi,

        (Den Browsern und dem WebServer ist es m.e. egal, ob und welche
        Zeilenenden da sind.)

        Nicht GANZ... PHP ist eine Formatfreie Sprache, das heißt, daß es
        Wurst ist, welches Whitspacezeichen man macht, um die Befehle zu
        trennen. Ob es nun Ein Break ist, ein Tab oder ein Leerzeichen, das
        ist völlig Wurst.

        $var1 = "inhalt"; $var2 = "inhalt2";

        ist das selbe wie

        $var1 = "inhalt1";
        $var2 = "inhalt2";

        oder wie
        $var1 = "inhalt1";                  $var2 = "inhalt2";

        Es ist sogar Wurst, ob du überhaupt eins machst, man kann auch

        $var1="inhalt1";$var2="inhalt2";

        schreiben ,)

        Plan B: Datei mit FTP im ASCII Modus übertragen, da wird das
        umgesetzt.

        Stimmt ,)

        nichts für ungut,
        CK1

        1. Hi,

          (Den Browsern und dem WebServer ist es m.e. egal, ob und welche
          Zeilenenden da sind.)

          Nicht GANZ... PHP ist eine Formatfreie Sprache, [...]

          äh... ich weiss.

          War wohl leicht missverständlich. Ich meinte das Essen (Daten) und nicht den Koch(Script):

          Mir ging es um

          <?
          echo "Hallo "\r\n";
          echo "Hallo "\n";
          echo "Hallo "\r";
          ?>

          was passieren kann wenn Stefan in seine Gästebuch Text-Datei Windowstaugliche "\r\n" Zeilentrenner
          schreibt, die dann irgendwann mal an den Browser weitergereicht werden.
          (Also, das sie nicht rausgefilter werden müssen)

          Gruss,
          Carsten

        2. Hi,

          (Den Browsern und dem WebServer ist es m.e. egal, ob und welche
          Zeilenenden da sind.)

          Nicht GANZ... PHP ist eine Formatfreie Sprache, [...]

          äh... ich weiss.

          War wohl leicht missverständlich. Ich meinte das Essen (Daten) und nicht den Koch(Script):

          Mir ging es um

          <?
          echo "Hallo "\r\n";
          echo "Hallo "\n";
          echo "Hallo "\r";
          ?>

          was passieren kann wenn Stefan in seine Gästebuch Text-Datei Windowstaugliche "\r\n" Zeilentrenner
          schreibt, die dann irgendwann mal an den Browser weitergereicht werden.
          (Also, das sie nicht rausgefilter werden müssen)

          Gruss,
          Carsten