Andi: Zeilenumbruch bei *.txt mit PHP (fwrite)

Folgendes Problem

Ich lese mit PHP ein Html Formular aus und will die Daten in einer txt datei niederschreiben. Wenn ich jetzt mehrere fwrite befehle hintereinande schreibe, dann postet mit php den text in einer wurscht statt jedes fwrite in eine zeile.

Weiß jemand des rätsels lösung?
Bin auch für alternativ vorschläge sehr dankbar

Mfg Andi

  1. hi,

    zeilenumbruch mittels PHP durch anhängen eines "\n" an den jeweiligen string.

    gruß,
    wahsaga

    1. Hello,

      zeilenumbruch mittels PHP durch anhängen eines "\n" an den jeweiligen string.

      Welches Zeichen dafür in Frage kommt, hängt aber vom Betriebssystem ab. Und ob eine Text-Datei überhaupt pracktisch ist, kommt ja auch noch auf die Aufgabe an. Man könnte ja auch eine binär-Datei mit fester Satzlänge produzieren oder das berühmte Array...

      siehe http://forum.de.selfhtml.org/my/?t=82138&m=478145

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  2. Hello,

    Wie oft willst Du das denn wiederholen mit dem Wegschreiben?
    Sollen sich in der Datei mehrere Datensätze sammeln?

    Jedes fwrite dauert länger, als vorher den Stream zusammenzubauen und ihn dann komplett wegzuschreiben.

    Was hast Du mit der Datei später noch vor? Sollen die Daten auch mal editiert werden?

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Sers ok also eine frage nach der anderen

      Wie oft willst Du das denn wiederholen mit dem Wegschreiben?
      Sollen sich in der Datei mehrere Datensätze sammeln?

      Das ganze soll eine Eingabemaske für eine Newssite sein, in der sich ca. 10 News einträge zu je 4 Zeilen sammeln sollen. Jeder 11.Eintrag soll sich dann aus der txt. dat wieder rauslöschen (ist das möglich=)

      Jedes fwrite dauert länger, als vorher den Stream zusammenzubauen und ihn dann komplett wegzuschreiben.

      Was hast Du mit der Datei später noch vor? Sollen die Daten auch mal editiert werden?

      Hatte in weiterer Folge vor die Einträge auch editierbar zu gestalten, in erster linie soll die txt. dat aber rein als kleine datenbank fungieren.

      1. Hello,

        Das ganze soll eine Eingabemaske für eine Newssite sein, in der sich ca. 10 News einträge zu je 4 Zeilen sammeln sollen. Jeder 11.Eintrag soll sich dann aus der txt. dat wieder rauslöschen (ist das möglich=)

        Dann sollten wir noch klären, wo der neueste Datensatz stehen soll. Oben oder unten? Ich gehe jetzt davon aus, dass nur über die Zeit sortiert wird.

        Selbstverständlich kann man Datensätze löschen.

        Jedes fwrite dauert länger, als vorher den Stream zusammenzubauen und ihn dann komplett wegzuschreiben.

        Was hast Du mit der Datei später noch vor? Sollen die Daten auch mal editiert werden?

        Hatte in weiterer Folge vor die Einträge auch editierbar zu gestalten, in erster linie soll die txt. dat aber rein als kleine datenbank fungieren.

        Gut, dann lass uns mal gemeinsam über Dateiformate und Datenmodellierung sprechen. Und wenn Dennis zufällig mitlesen sollte, kann er das gleich mitprotokollieren für unser Vorhaben mit dem Feature-Artikel.

        Ich fang mal vorne an *gg*

        Daten werden bei heutigen DV-Anlagen als Bits dargestellt

        Aus den Bits werden durch Gruppierung (Bytes) einzelne Werte gebildet, die einzeln oder zusammengesetzt Datentypen und dann Zeichen ergeben.

        Aus den Zeichen können datenzusammengesetzt werden

        Diese Datenwerte bezeichnnet man dann bei der Speicherung als Feld oder Spalte

        Aus mehreren Spalten können Datensätze oder Zeilen zusammengesetzt werden.
        Die Spalten müssen irgendwie wieder voneinander trennbar sein.

        Übliche Dateien kann man sich vorstellen, wie einen Bindfaden. Der hat nur einen Anfang und ist eben so lang, wei man ihn aus der Reserver zieht. Auf diesem Bindfaden (Stream) können jetzt die Zeilen nacheinander gespeichert werden.

        Haben die Zeilen eine feste länge, kann man berechnen, wo eine anfängt. Man spricht dann von einer Datei mit wahlfreiem Zugriff.
        Haben die Zeilen eine unterschiedliche Länge, dann spricht man von einer sequentiellen Datei oder auch Textdatei. Hier kann man nicht von vorneherein wissen, wo eine Zeile / ein Datensatz anfängt. Man muss die Datei von vorne her durchlesen (es gibt auch Systeme, die von hinten lesen können) und die Endemarkierungen der zeilen zählen. Die zehnte Zeile fängt also nach der neunten Markierung an und endet mit dem Ende der zehnten. Der "Knoten" in unserem Bindfaden (die Zeilenendemarkierung) gehört also immer zum vorangegangenen Datensatz. Bei der jeweils letzten Zeile auf einem Stream kann auch die Endemarkierung fehlen. Das ist System- und Applikationsabhängig. Manche Systeme ergänzen die dann auch automataisch.

        Du merkst also schon, man muss bei jedem Schritt, den wir geistig volltziehen, immer mehr wissen über sein System.

        Nun stell Dir mal vor, dass Du die siebte Zeile von 22 ändern willst. In dem Datenfeld, das den Inhalt repräsentiert, soll ein Wort ergänzt werden. Wie würdest Du da vorgehen?

        [... to be continued ...]

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        1. Hello,

          Das ganze soll eine Eingabemaske für eine Newssite sein, in der sich ca. 10 News einträge zu je 4 Zeilen sammeln sollen. Jeder 11.Eintrag soll sich dann aus der txt. dat wieder rauslöschen (ist das möglich=)

          Dann sollten wir noch klären, wo der neueste Datensatz stehen soll. Oben oder unten? Ich gehe jetzt davon aus, dass nur über die Zeit sortiert wird.

          Der neueste Datensatz soll immer oben stehen, so dass ich über eine Auslesemaske in einer tabelle immer den neuesten Eintrag ausgeben kann.

          Selbstverständlich kann man Datensätze löschen.

          Jedes fwrite dauert länger, als vorher den Stream zusammenzubauen und ihn dann komplett wegzuschreiben.

          Was hast Du mit der Datei später noch vor? Sollen die Daten auch mal editiert werden?

          Hatte in weiterer Folge vor die Einträge auch editierbar zu gestalten, in erster linie soll die txt. dat aber rein als kleine datenbank fungieren.

          Gut, dann lass uns mal gemeinsam über Dateiformate und Datenmodellierung sprechen. Und wenn Dennis zufällig mitlesen sollte, kann er das gleich mitprotokollieren für unser Vorhaben mit dem Feature-Artikel.

          Ich fang mal vorne an *gg*

          Daten werden bei heutigen DV-Anlagen als Bits dargestellt

          Aus den Bits werden durch Gruppierung (Bytes) einzelne Werte gebildet, die einzeln oder zusammengesetzt Datentypen und dann Zeichen ergeben.

          Aus den Zeichen können datenzusammengesetzt werden

          Diese Datenwerte bezeichnnet man dann bei der Speicherung als Feld oder Spalte

          Wie füge ich in eine *.txt Dat Tabellen ein?

          Aus mehreren Spalten können Datensätze oder Zeilen zusammengesetzt werden.
          Die Spalten müssen irgendwie wieder voneinander trennbar sein.

          Übliche Dateien kann man sich vorstellen, wie einen Bindfaden. Der hat nur einen Anfang und ist eben so lang, wei man ihn aus der Reserver zieht. Auf diesem Bindfaden (Stream) können jetzt die Zeilen nacheinander gespeichert werden.

          Haben die Zeilen eine feste länge, kann man berechnen, wo eine anfängt. Man spricht dann von einer Datei mit wahlfreiem Zugriff.
          Haben die Zeilen eine unterschiedliche Länge, dann spricht man von einer sequentiellen Datei oder auch Textdatei. Hier kann man nicht von vorneherein wissen, wo eine Zeile / ein Datensatz anfängt. Man muss die Datei von vorne her durchlesen (es gibt auch Systeme, die von hinten lesen können) und die Endemarkierungen der zeilen zählen. Die zehnte Zeile fängt also nach der neunten Markierung an und endet mit dem Ende der zehnten. Der "Knoten" in unserem Bindfaden (die Zeilenendemarkierung) gehört also immer zum vorangegangenen Datensatz. Bei der jeweils letzten Zeile auf einem Stream kann auch die Endemarkierung fehlen. Das ist System- und Applikationsabhängig. Manche Systeme ergänzen die dann auch automataisch.

          Du merkst also schon, man muss bei jedem Schritt, den wir geistig volltziehen, immer mehr wissen über sein System.

          Nun stell Dir mal vor, dass Du die siebte Zeile von 22 ändern willst. In dem Datenfeld, das den Inhalt repräsentiert, soll ein Wort ergänzt werden. Wie würdest Du da vorgehen?

          Also ich kann nur sagen wie ich das problem mit VBA angehen würde

          ich würde das programm die laufende nummer des eintrags auslesen lassen der editiert werden soll --> Nr.7 dann soll er sich in der 1. Spalte der datenbank das Range mit Caption 7 suchen dann in der eben gefundenen Reihe 7  in die Spalte schicken wo der Eintrag geändert wird und dort die Caption mit der neu gültigen überschreiben.

          [... to be continued ...]

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          1. Hello,

            Also ich kann nur sagen wie ich das problem mit VBA angehen würde

            ich würde das programm die laufende nummer des eintrags auslesen lassen der editiert werden soll --> Nr.7 dann soll er sich in der 1. Spalte der datenbank das Range mit Caption 7 suchen dann in der eben gefundenen Reihe 7  in die Spalte schicken wo der Eintrag geändert wird und dort die Caption mit der neu gültigen überschreiben.

            viel anders geht das hier auch nicht, nur man kann nich verstehen, was der Code machen soll, im Gegensatz zu VBA :-(

            Wenn mitten im Speicherbereich was einfügen wollen, müssen wir auch Platz dafür haben. Wenn Du dich nun entschieden hast, ob Du eine Textdatei odere eine Datei mit wahlfreiem Zugriff benutzen willst, dann können wir weitermachen.

            Bei wahlfreiem Zugriff (also bei fester Satzlänge) benötigt man keine Zeilenendezeichen, kann aber immer nur eine vorher festgelegte Datenmenge pro Datensatz abspeichern. Allerdings kann man jeden Datensatz beliebig ändern (innerhalb seiner Grenzen), ohne dass die anderen Datensätze davon betroffen werden. Man hat allerdings auch viel ungenutzen Raum in einer solchen Datei.

            Nur ein echtes Löschen ist nach dem Modell nicht einfach möglich. Aber man kann den Satz mit einem neuen überschreiben.

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hello,

              Also ich kann nur sagen wie ich das problem mit VBA angehen würde

              ich würde das programm die laufende nummer des eintrags auslesen lassen der editiert werden soll --> Nr.7 dann soll er sich in der 1. Spalte der datenbank das Range mit Caption 7 suchen dann in der eben gefundenen Reihe 7  in die Spalte schicken wo der Eintrag geändert wird und dort die Caption mit der neu gültigen überschreiben.

              viel anders geht das hier auch nicht, nur man kann nich verstehen, was der Code machen soll, im Gegensatz zu VBA :-(

              Wenn mitten im Speicherbereich was einfügen wollen, müssen wir auch Platz dafür haben. Wenn Du dich nun entschieden hast, ob Du eine Textdatei odere eine Datei mit wahlfreiem Zugriff benutzen willst, dann können wir weitermachen.

              Die Option der Textdatei ist die einzige die ich mir bislang bei PHP angeschaut habe und irgendwie will das nicht so recht funktionieren!
              Bin auch für eine alternative offen.
              Also mein Problem:
              Ich will über ein HTML Formular einen Newseintrag in einer kleinen Datenbank abspeichern (eben zb ein txt file) und diese Einträge will ich dann wieder über ein php skript in eine html tabelle einfügen.

              Wie löse ich dieses Problem am besten?

              Lg Andi

              1. Hello,

                Die Option der Textdatei ist die einzige die ich mir bislang bei PHP angeschaut habe und irgendwie will das nicht so recht funktionieren!
                Bin auch für eine alternative offen.
                Also mein Problem:
                Ich will über ein HTML Formular einen Newseintrag in einer kleinen Datenbank abspeichern (eben zb ein txt file) und diese Einträge will ich dann wieder über ein php skript in eine html tabelle einfügen.

                Das habe ich schon verstanden.
                Dann treffe ich jetzt mal für dich die Entscheidung. Wir nehmen für den Anfang eine Textdatei, also eine mit variabler Satzlänge. Wenn Du darin etwas ändern willst, musst Du i.d.R. die gesamte Datei einlesen und im Speicher zerlegen und dann die Änderung durchführen, die Datei wieder zusammenbauen und wegschreiben. PHP beitet mächtige Funktionen dafür.

                Rekapitulieren wir noch mal:

                Wir setzen aus einzelnen Datenfeldern Datensätze zusammen und die reihen wir zu einer Datei an. Wir müssen also wissen:

                Welche Datenfelder werden benötigt?
                Welche zeichen sollen darin erlaubt sein?
                Wie trennen wir die Datenfelder voneinander?
                Wie trennen wir die datensätze voneinander?

                Die letzte Frage lässt sich am einfachsten beantworten, da dies für Textdateien festgelegt ist. Darum beantworte ich die *hihi*
                Datensätze werden durch ein Zeilenendezeichen getrennt:

                define('N',chr(13).chr(10));

                Ich habe gleich mal eine Konstante dafür definiert, hier für die Speicherung auf einem Windows-System.

                System      |   Kürzel  |  dez. Codes
                ------------|-----------|------------
                  WinDOS    |   CRLF    |  13   10
                  MAC       |   CR      |  13
                  Linux     |   LF      |       10

                Du legst jezt mal fest, welche Datenfelder du benötigst

                Feldname    |  enthält
                ------------|-------------------------------
                            |
                            |

                Und welches zeichen wir erübrigen können aus dem Zeichsatz für die Trennung der Felder innerhalb des Satzes. Diese Zeichen dürfen dann nicht in den Daten vorkommen. Das Zeilenendezeichen darf natürlich auch nicht mehr in den Nutzdaten vorkommen.

                Dann mal los...

                Liebe Grüße aus http://www.braunschweig.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                1. Dann treffe ich jetzt mal für dich die Entscheidung. Wir nehmen für den Anfang eine Textdatei, also eine mit variabler Satzlänge. Wenn Du darin etwas ändern willst, musst Du i.d.R. die gesamte Datei einlesen und im Speicher zerlegen und dann die Änderung durchführen, die Datei wieder zusammenbauen und wegschreiben. PHP beitet mächtige Funktionen dafür.

                  Ok passt das nehmen ich! ;-)

                  Rekapitulieren wir noch mal:

                  Wir setzen aus einzelnen Datenfeldern Datensätze zusammen und die reihen wir zu einer Datei an. Wir müssen also wissen:

                  Welche Datenfelder werden benötigt?

                  Wenn ich das richtig vestanden habe sind das die Felder in denen die einzelnen Informationen für die News stehen. (hab ich unten in die Tabelle eingefügt)

                  Welche zeichen sollen darin erlaubt sein?

                  siehe Tabelle

                  Wie trennen wir die datensätze voneinander?

                  Ich hatte gehofft dass du mir das sagst ;-)

                  Die letzte Frage lässt sich am einfachsten beantworten, da dies
                  für Textdateien festgelegt ist. Darum beantworte ich die *hihi*
                  Datensätze werden durch ein Zeilenendezeichen getrennt:

                  define('N',chr(13).chr(10));

                  Ich habe gleich mal eine Konstante dafür definiert, hier für die
                  Speicherung auf einem Windows-System.

                  System Kürzel dez. Codes
                  WinDOS CRLF 13   10
                  MAC CR 13
                  Linux LF 10

                  Du legst jezt mal fest, welche Datenfelder du benötigst

                  Feldname        |  enthält
                   ----------------|---------------------------
                   laufende Nummer | 0-9
                   Datum           | 0-9 .
                   Titel           | Ziffern und Buchstaben (inkl. Umlate und
                                     Satzzeichen
                   Inhalt          | Ziffern und Buchstaben (inkl. Umlaute) und
                                     Satzzeichen und Sonderzeichen
                   Name des Autors | Ziffern und Buchstaben (inkl. Umlaute) und
                                     Satzzeichen und Sonderzeichen

                  Und welches zeichen wir erübrigen können aus dem Zeichsatz für die Trennung der Felder innerhalb des Satzes.

                  ich denke µ dürfte den dienst gut erfüllen!

                  Diese Zeichen dürfen dann nicht in den Daten vorkommen. Das
                  Zeilenendezeichen darf natürlich auch nicht mehr in den Nutzdaten
                  vorkommen.

                  Vielen Dank Lg Andi

                  1. Hello,

                    Du legst jezt mal fest, welche Datenfelder du benötigst

                    Feldname        |  enthält
                     ----------------|---------------------------
                     laufende Nummer | 0-9
                     Datum           | 0-9 .
                     Titel           | Ziffern und Buchstaben (inkl. Umlate und
                                       Satzzeichen
                     Inhalt          | Ziffern und Buchstaben (inkl. Umlaute) und
                                       Satzzeichen und Sonderzeichen
                     Name des Autors | Ziffern und Buchstaben (inkl. Umlaute) und
                                       Satzzeichen und Sonderzeichen

                    Kommt in einem dieser Felder ein Zeilenumbruch vor oder könnte eine MÜ drinstehen?

                    Und welches zeichen wir erübrigen können aus dem Zeichsatz für die Trennung der Felder innerhalb des Satzes.

                    ich denke µ dürfte den dienst gut erfüllen!

                    Ich plädiere dazu, ein chr(4) für die Trennung der Felder zu benutzen und ein chr(127) für den Fall, dass in einem Datenwert ein Zeilenumbruch vorkommen muss. Das hat sich bewährt. Weder #127 noch #4 lassen sich auf normalem Wege über den Browser in die Datenwerte bringen, und sie hätten auch keinen echten Nutzen. Also können wir die Daten zur Sicherheit erst von diesen Zeichen befreien. Sollten doch welche vorkommen, dann hat der User gemogelt und wir können sie entweder irreversibel durch #32 (Leerzeichen) ersetzen, oder wir brechen mit einer DuDu-Meldung ab.

                    In Textareas kommen mit Vorliebe Zeilenumbrüche vor. Die erstezen wir dann gegen #127. Dann addieren wir die Felder zu einem String, immer durch #4 getrennt. An das Ende des Strings hängen wir unsere Konstante N und fertig ist der Datensatz.

                    Es hat sich bewährt, wenn alle abzuspeichernden Daten im Formular bereits als Array vorbereitet werden.

                    <input type="text" ... name="data[author]">
                      <input type="text" ... name="data[title]">
                      <textarea name="data[text]"></textarea>

                    usw.

                    Dann kann man nämlich im Script alles per Schleige abarbeiten lassen.

                    Die daten kommen dan ja in

                    $_POST['data']['author']
                    $_POST['data']['title']
                    $_POST['data']['text']

                    an, und man kann wunderschön mit foreach($_POST['data'] as $val) arbeiten...

                    Mehr morgen.

                    Liebe Grüße aus http://www.braunschweig.de

                    Tom

                    --
                    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                    Nur selber lernen macht schlau
                    1. Hello,

                      Du legst jezt mal fest, welche Datenfelder du benötigst

                      Feldname        |  enthält
                       ----------------|---------------------------
                       laufende Nummer | 0-9
                       Datum           | 0-9 .
                       Titel           | Ziffern und Buchstaben (inkl. Umlate und
                                         Satzzeichen
                       Inhalt          | Ziffern und Buchstaben (inkl. Umlaute) und
                                         Satzzeichen und Sonderzeichen
                       Name des Autors | Ziffern und Buchstaben (inkl. Umlaute) und
                                         Satzzeichen und Sonderzeichen

                      Kommt in einem dieser Felder ein Zeilenumbruch vor oder könnte eine MÜ drinstehen?

                      Es braucht im Prinzip kein Zeilenumbruch stehen, weil die Html Tabelle richtet sichs dann eh her wie sie es braucht, das gibt sonst wieder nur formatschwierigkeiten mit HTML!

                      Und welches zeichen wir erübrigen können aus dem Zeichsatz für die Trennung der Felder innerhalb des Satzes.

                      ich denke µ dürfte den dienst gut erfüllen!

                      Ich plädiere dazu, ein chr(4) für die Trennung der Felder zu benutzen und ein chr(127) für den Fall, dass in einem Datenwert ein Zeilenumbruch vorkommen muss. Das hat sich bewährt. Weder #127 noch #4 lassen sich auf normalem Wege über den Browser in die Datenwerte bringen, und sie hätten auch keinen echten Nutzen. Also können wir die Daten zur Sicherheit erst von diesen Zeichen befreien. Sollten doch welche vorkommen, dann hat der User gemogelt und wir können sie entweder irreversibel durch #32 (Leerzeichen) ersetzen, oder wir brechen mit einer DuDu-Meldung ab.

                      Gibt es eine Tabelle für die ganzen chr(x)?? Ist ein bisschen verwirrend!!

                      In Textareas kommen mit Vorliebe Zeilenumbrüche vor. Die erstezen wir dann gegen #127. Dann addieren wir die Felder zu einem String, immer durch #4 getrennt. An das Ende des Strings hängen wir unsere Konstante N und fertig ist der Datensatz.

                      Es hat sich bewährt, wenn alle abzuspeichernden Daten im Formular bereits als Array vorbereitet werden.

                      <input type="text" ... name="data[author]">
                        <input type="text" ... name="data[title]">
                        <textarea name="data[text]"></textarea>

                      usw.

                      Dann kann man nämlich im Script alles per Schleife abarbeiten lassen.

                      Die daten kommen dan ja in

                      $_POST['data']['author']
                      $_POST['data']['title']
                      $_POST['data']['text']

                      an, und man kann wunderschön mit foreach($_POST['data'] as $val) arbeiten...

                      Ausgezeichnet d.h. alle eingabefelder author, title und text sind am schluss dann in der varbiablen $val gespeichert? wie speichert man die Werte dann in die einzelenen Felder und wie spricht man diese wieder an?
                      Sind in $val vielleicht die einzelnen arrays gespeichert und nicht die werte???

                      thx lg Andi

  3. Hi!

    Ich lese mit PHP ein Html Formular aus und will die Daten in einer txt datei niederschreiben. Wenn ich jetzt mehrere fwrite befehle hintereinande schreibe, dann postet mit php den text in einer wurscht statt jedes fwrite in eine zeile.

    Um Zeilenumbrüche einzufügen, gibt es bestimmte "Zeichenfolgen", die PHP bei der Verwendung in durch "" eingeschlossene Zeichenketten berücksichtigt.

    In Deinem Fall wäre das wohl sowas wie:

    echo "zeile1\r\nzeile2";

    Siehe: http://de3.php.net/manual/de/language.types.string.php#language.types.string.syntax.double

    Grüße
    Andreas

    --
    SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
  4. Folgendes Problem

    [...]Wenn ich jetzt mehrere fwrite befehle hintereinande schreibe, dann postet mit php den text in einer wurscht statt jedes fwrite in eine zeile. [...]

    Folgende Lösung:

    Du musst natürlich die Zeilenumbrüche auch in die Datei schreiben. Dazu schreibst du
    fwrite( $datei, '\n');
    überall dahin, wo in der Datei ein Zeilenumbruch sein soll. Du kannst das \n auch an den String, den du in die Datei schreibst, mit anhängen, also etwa so:
    fwrite( $datei, $text.'\n');

    Mfg Andi

    mfg eb4

    1. Hi!

      fwrite( $datei, '\n');
      überall dahin, wo in der Datei ein Zeilenumbruch sein soll.

      nein, das funktioniert nicht, siehe:

      http://de3.php.net/manual/de/language.types.string.php#language.types.string.syntax.double

      Grüße
      Andreas

      --
      SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
  5. Hey danke für die raschen antworten. hab alle durchprobiert aber es funzt einfach end

    der code schaut im mom so aus

    $dat="ablage.txt";

    $fp=fopen($dat,"w");
    fwrite($fp;$_POST['vorname']);
    fwrite($fp,$inhalt);
    fclose($fp);

    da soll jetzt im *.txt ein zeilenumbruch kommen, so dass vorname in die erste zeile und der inhalt in die zweie kommt!

    thx Andi

    1. Hello,

      $dat="ablage.txt";

      $fp=fopen($dat,"w");

      fwrite($fp;$_POST['vorname']."\r\n$inhalt");

      fclose($fp);

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. $dat="ablage.txt";

        $fp=fopen($dat,"w");
          fwrite($fp;$_POST['vorname']."\r\n$inhalt");
        fclose($fp);

        sers
        wenn ich das so schreibe dann macht er keinen zeilenumbruch sondern überschreibt mit einfach die 1. Zeile.

        Lg Andi

        1. Hello,

          sers
          wenn ich das so schreibe dann macht er keinen zeilenumbruch sondern überschreibt mit einfach die 1. Zeile.

          Dann solltest Du vielleicht mal meine Fragen von oben beantworten!
          Ich kann das zwar ahnen, was da auf uns für Fragen zukommen werden, aber wir wollen die doch der Reihe nach beantworten, oder?

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          1. Sers ok also eine frage nach der anderen

            Wie oft willst Du das denn wiederholen mit dem Wegschreiben?
            Sollen sich in der Datei mehrere Datensätze sammeln?

            Das ganze soll eine Eingabemaske für eine Newssite sein, in der sich ca. 10 News einträge zu je 4 Zeilen sammeln sollen. Jeder 11.Eintrag soll sich dann aus der txt. dat wieder rauslöschen (ist das möglich=)

            Jedes fwrite dauert länger, als vorher den Stream zusammenzubauen und ihn dann komplett wegzuschreiben.

            Was hast Du mit der Datei später noch vor? Sollen die Daten auch mal editiert werden?

            Hatte in weiterer Folge vor die Einträge auch editierbar zu gestalten, in erster linie soll die txt. dat aber rein als kleine datenbank fungieren.

        2. Hi!

          wenn ich das so schreibe dann macht er keinen zeilenumbruch sondern überschreibt mit einfach die 1. Zeile.

          Ja, das ist ja auch das was Du PHP sagst:

          $fp=fopen($dat,"w");

          Guck mal im Manual nach ob Du den korrekten Modus für "fopen()" verwendest: http://de3.php.net/fopen#AEN30167

          Grüße
          Andreas

          --
          SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/