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

Beitrag lesen

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