Hello,
BTW: Was spricht dagegen, den Text escaped 'reinzuschreiben?
Huch! Das solltest Du aber inzwischen wissen.
In Datenhaltungen (DB-Tabelle, Flatfile, Raw-Variablen im Speicher) gehören immer Raw-Daten, also nur Zeichen, die für die jeweilige Datenhaltung das neutrale Format bedeuten.
Viel wesentlicher ist es, das Speicherformat der Datei genau festzulegen. Wenn man sich für "Textdateien", also serielle Dateien mit variabler Satzlänge und Zeilenendezeichen benutzt, darf dieses Zeilenendezeichen in den Daten selber nicht vorhanden sein. Man muss es also vorher ersezten.
Was gut funktioniert ist:
Backslashes (rekursiv) aus dem ($_POST-)Variablen entfernen, wenn
PHP automatisch welche hinzugefügt hat. --> get_magic_quotes_gpc()
Alle chr(4)-Zeichen aus den Daten gegen Leerzeichen ersetzen
(dürften keine drin sein)
alle chr(127)-Zeichen aus den Daten gegen Leerzeichen ersetzen
(dürften keine drin sein)
Alle Zeilenendezeichen in den Daten gegen chr(127) ersetzen
Datenfelder mit chr(4) und implode() aneinanderfügen und ein
Zeilenendezeichen anhängen.
Datensatz abspeichern.
Nach dem Holen der Daten muss man das dann Schrit für Schritt rückgängig machen. Nur die Slashes muss man nicht sieder einfügen ;-)
Aber dafür muss man die auszugegebenen Daten HTML-gerecht aufbereiten, abhängig davon, in welchem Kontext sie ausgegeben werden sollen:
- normaler HTML-Text
- Textarea, values von inputs
- Links
- Parameter von Links
Ich hoffe, ich konnte dich da noch ein bisschen verwirren. Mach so 30 bis 50 abgegrenzte Versuche, dann wird Dir alles klar.
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen