sTeFaNp.: Warum funzt "r+" nicht?

'\*~-:. Hallo Leute .:-~\*'

Mein kleines Newssystem funktioniert super,bis auf das die News immer angehängt werden,nicht oben hingeschrieben werden!
Hier der Code in dem der Fehler liegen muss :
--
smilies();
$datei = fopen("news.dat","r+");
$inhalt = fgets($datei,9999999);
$jetzt = '<div id="1">'.$thema.'</div>
 <div id="1">Quelle:</div>
 <div id="news"><b>'.$news.'</b></div>
 <div id="1">Autor: <b>'.$name.'</b></div><div id="1">
  am '.$datum.' um '.$uhrzeit.' </div>';
fwrite($datei,$jetzt);

fclose($datei);
--

was ist da falsch?

Gruß sTeFaNp.

  1. Hallo Stefan,

    Mein kleines Newssystem funktioniert super,bis auf das die News immer angehängt werden,nicht oben hingeschrieben werden!
    $datei = fopen("news.dat","r+");

    du kannst in einer Datei nicht Daten einfach oben dranhängen, wenn du eine Datei mit r+ öffnest, und was reinschreibst, wird der erste Teil der Datei überschrieben (jenachdem, wieviel du eben reinschriebst). Um was vorne an die Datei "dranzuhängen" musst du die ganze Datei in einen String lesen, den neuen Inhalt im array vorne dranhängen und den ganzen String wieder in die Datei schreiben.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo Stefan,

      Mein kleines Newssystem funktioniert super,bis auf das die News immer angehängt werden,nicht oben hingeschrieben werden!
      $datei = fopen("news.dat","r+");
      du kannst in einer Datei nicht Daten einfach oben dranhängen, wenn du eine Datei mit r+ öffnest, und was reinschreibst, wird der erste Teil der Datei überschrieben (jenachdem, wieviel du eben reinschriebst). Um was vorne an die Datei "dranzuhängen" musst du die ganze Datei in einen String lesen, den neuen Inhalt im array vorne dranhängen und den ganzen String wieder in die Datei schreiben.

      Grüße aus Nürnberg
      Tobias

      --

      Hm,versteh ich nicht ganz wie ich das in einen string lese :((

      Kannst mir das erklären oder einfach url zur erklärung von strings sagen?

      Wäre nett,lerne Php nämlich erst.

      mfg sP.

      1. Hallo Stefan,

        Hallo Stefan,
        [...]

        -> http://afaik.nimmich.org/usenet/faq/zitieren/

        Hm,versteh ich nicht ganz wie ich das in einen string lese :((

        mit fread() ->http://www.php.net/fread
        das "vornedranhängen" geht mit http://www.php.net/language.operators.string

        Kannst mir das erklären oder einfach url zur erklärung von strings sagen?

        was meinst du mit "erklärung von strings"?

        Wäre nett,lerne Php nämlich erst.

        dann solltest du mal etwas in der Dokumentation auf http://www.php.net/ stöbern

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. Danke,werde ich mir durchlesen

          mfg sP.

      2. Hallo!

        /* Datei einlesen */
        $oldstring = implode ('', file('something.txt'));

        /* "Vorne" den neuen Eintrag anfügen */
        $string = $newstring . "\n" . $oldstring;

        /* Kompletten String wieder zurückschreiben */
        $fp = fopen("something.txt","w");
        fwrite($fp, $string);
        fclose($fp);

        Adaptierungen bei Bedarf selbst durchführen.
        Weitere Infos unter http://www.php.net/manual/de/ref.filesystem.php

        Tip: Bei etwas umfangreicheren Dateien würde ich doch auf eine DB ausweichen ;-)

        mfg

        norbert =:-)

        1. Hallo!

          »»
             Hallo,

          Tip: Bei etwas umfangreicheren Dateien würde ich doch auf eine DB ausweichen ;-)

          Hab ich mir auch schon überlegt,aber bei Freespace ist jeder Mb myqsl wertvoll :)

          mfg

          norbert =:-)

          mfg sP.= :))))

          Es funzt!
          Danke für die genaue Erklärung :)

        2. Moin,

          $fp = fopen("something.txt","w");

          Solche Spielerein sind etwas heikel da es durchaus möglich ist, dass zwei PHP-Prozesse gleichzeitig laufen. Und wenn der eine Prozess seine Änderung in die Datei schreibt nachdem der andere Prozess die Datei gelesen hat, dann gehen dir manchmal Einträge verloren.

          Daher hier immer mit file locking arbeiten: http://www.php.net/manual/de/function.flock.php.

          --
          Henryk Plötz
          Grüße aus Berlin
          ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
          ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
          1. Hallo Henryk!

            Daher auch der Hinweis:

            Adaptierungen bei Bedarf selbst durchführen.

            Gilt auch für allfällige weitere Schwachpunkte meines Vorschlages - den ganzen Quellcode wollte ich dann doch nicht erstellen ;-)

            mfg

            norbert =:-)