sonderzeichen parsen
Ralph
- php
0 fastix0 Bernhard Mecl
Hallo,
folgendes Problem:
ich will Usereingaben parsen und folgendes erreichen:
Ich habe eine Funktion, die mir alle nicht genehmigten Tags entfernt, aber verwende ich danach
htmlspecialchars() oder htmlentities(), dann gehen mir auch alle anderen Tags verloren.
Gibt's da irgendwas?
Hi!
Ist doch ganz einfach!
Ersetze erst alle "<" und ">" in den erlaubten Tags durch ein anderes Zeichen oder einen Text z.B. "_k_l_e_i_n_e_r_" und dann wieder zurück.
fastix
- alle nicht genehmigten Tags entfernen
- genehmigte Tags dementsprechend drinlassen
vgl. strip_tags(), insbesondere den Parameter allowable_tags.
- Sonderzeichen [...] in ihr HTML-Äquivalent umwandeln.
Ein Denkanstoß[tm]:
$table=get_html_translation_table(HTML_ENTITIES);
unset($table['&'],$table['"'],$table['<'],$table['>']);
strtr($string,$table);
Du mußt "nur mehr" das Problem lösten, daß die erwähnten vier Zeichen - in ihrer tatsächlichen Bedeutung vorkommend - natürlich auch nicht ersetzt werden. Das impliziert z.B. Nettigkeiten wie <input ... value="foo <> bar"> etc.