Hallo!
Die Eingaben einer Textarea schicke ich mittels POST an ein PHP-Script. Wenn ein User nun einfache Hochkomma eingibt, dann werden diese scheinbar automatisch mit Backslash maskiert. Also aus 'box' wird dann \'box'\. Dieses Verhalten möchte ich jedoch nicht, da ich das ganze in eine CDATA-XML-Section abspeichere. Wie kriege ich es hin, dass dieses Zeichen nicht maskiert wird, ohne eine ereg_replace()-Methode zu verwenden (denn wer weiß, was noch alles mit maskiert werden soll)? htmlspecialchars() kann ich auch nicht verwenden, da damit auch die ganzen Umlauten und sonstige Sonderzeichen flöten gehen. Hat jemand eine Idee?
MfG, Thomas Domenig.
EDIT: Das einfache Hochkomma kriege ich mit
noch hin, aber beim doppelten funktioniert das nicht:
Es wird zwar das Hochkomma erkannt, aber das Ersetzen mit chr(34) liefert das selbe maskierte Resultat, das ich nicht haben möchte.
Die Eingaben einer Textarea schicke ich mittels POST an ein PHP-Script. Wenn ein User nun einfache Hochkomma eingibt, dann werden diese scheinbar automatisch mit Backslash maskiert. Also aus 'box' wird dann \'box'\. Dieses Verhalten möchte ich jedoch nicht, da ich das ganze in eine CDATA-XML-Section abspeichere. Wie kriege ich es hin, dass dieses Zeichen nicht maskiert wird, ohne eine ereg_replace()-Methode zu verwenden (denn wer weiß, was noch alles mit maskiert werden soll)? htmlspecialchars() kann ich auch nicht verwenden, da damit auch die ganzen Umlauten und sonstige Sonderzeichen flöten gehen. Hat jemand eine Idee?
MfG, Thomas Domenig.
EDIT: Das einfache Hochkomma kriege ich mit
Code:
$_POST["text"] = ereg_replace("\\\'", "'", $_POST["text"]);
noch hin, aber beim doppelten funktioniert das nicht:
Code:
$_POST["text"] = ereg_replace("\\\"", chr (34), $_POST["text"]);
Es wird zwar das Hochkomma erkannt, aber das Ersetzen mit chr(34) liefert das selbe maskierte Resultat, das ich nicht haben möchte.
Zuletzt bearbeitet: