Zeilenumbruch bei *.txt mit PHP (fwrite)
Andi
- php
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
hi,
zeilenumbruch mittels PHP durch anhängen eines "\n" an den jeweiligen string.
gruß,
wahsaga
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
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
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.
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
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
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
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
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
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
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
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 SonderzeichenKommt 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
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
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
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
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
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
$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
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
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.
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