Sonderzeichenproblem
Markus Bauer
- php
Hallo,
Aus einer Datenbank lese ich ich Datenfelder aus, die dann in HTML dargestellt werden. aus dem ganzen mache ich zuerst ein
nl2br(htmlspecialchars($row[0]))
(Anm: Habe es auch schon mit htmlentities probiert)
In den Texten der Datenbank kommen aber schon maskierte Sonderzeichen vor - z.B. &alpha.
Wie stelle ich es an, dass bei schon maskierten Zeichen das "&" davor *NICHT* in & umgewandelt wird?!
Vielen Dank!
mc
hi,
In den Texten der Datenbank kommen aber schon maskierte Sonderzeichen vor - z.B. &alpha.
und _warum_?
das so ein kudeelmuddel, manche sonderzeichen umgewandelt, andere nicht, nichts gutes ist, sollte doch wohl klar sein.
Wie stelle ich es an, dass bei schon maskierten Zeichen das "&" davor *NICHT* in & umgewandelt wird?!
entweder schreibst du dir eine eigene funktion als ersatz für htmlspecialchars, die von dir definierte ausnahmen nicht umwandelt,
oder du ersetzt das, was htmlspecialchars aus den bereits kodierten sonderzeichen gemacht hat, anschliessend wieder durch die für deine zwecke "richtige" schreibweise - also α wieder durch α ersetzen.
gruß,
wahsaga
Hallo Markus!
In den Texten der Datenbank kommen aber schon maskierte Sonderzeichen vor - z.B. &alpha.
Wie stelle ich es an, dass bei schon maskierten Zeichen das "&" davor *NICHT* in & umgewandelt wird?!
Du könntest zuvor die Funktion "html_entity_decode()" verwenden, um die bereits maskierten Zeichen wieder zu demaskieren.
$neuer_string = nl2br(htmlentities(html_entity_decode($row[0])));
Ob das funktioniert, kann ich leider nicht sagen. Aber du kannst es ja mal probieren.
Links:
- PHP-Handbuch: html_entity_decode()
http://de.php.net/manual/de/function.html-entity-decode.php
- PHP-Handbuch: htmlentities()http://de.php.net/manual/de/function.htmlentities.php
- PHP-Handbuch: get_html_translation_table()
http://de.php.net/manual/de/function.get-html-translation-table.php