Andi: Datensätze in *.text files wegschreiben und wieder auslesen

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

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...

Ok die arrays werden dann also in $val gespeichert. Das was mir jetzt noch unklar ist:

  • wie setze ich die trennzeichen
  • wie schreibe ich die einzelnen Arrays in ihre Felder?
  • wie lese ich die Arrays aus ihren Felder wieder aus und gebe sie korrekt in einer html tabell wieder aus?

thx lg Andii