Funktion zum Austausch benannter Zeichen
Carsten
- php
0 Mulder
Guten Tag Selfer,
wir müssen Texte zur Ausgabe ín HTML formatieren, so dass alle Tags erhalten bleiben, aber die HTML-Sonderzeichen ersetzt werden.
Ich habe bereits in allen mir bekannten Quellen nach einer fertigen Funktion gesucht, und auch selbst versucht eine solche zu schreiben.
Leider hakt es an folgenden Problemen:
1. Anführungszeichen in Tags dürfen nicht getauscht werden,
im Text schon
2. < und > nur ersetzten, wenn sie kein Tag einleiten,
bzw. beenden
3. bereits getauschte nicht nochmals ersetzten,
z.B. & nicht &
Wer kann mir da helfen?
Ich brauche jede Idee :-)
Viele Grüße
Carsten
1. Anführungszeichen in Tags dürfen nicht getauscht werden,
im Text schon
Da wäre schon mal die Frage, ob auch die Validität des HTML mitgeprüft wird.
Was machst Du ansonsten mit
<input type="hidden" name="foo" value="Ich sage "Hallo"."> ?
2. < und > nur ersetzten, wenn sie kein Tag einleiten,
bzw. beenden
Ist "Tag" definiert als "valides HTML-Tag"? Das wäre auch wieder knifflig, weil ja
Sei b<a gegeben. Dann b positiv => a positiv.
so ohne weiteres nicht von einem <a>-Tag zu unterscheiden ist, außer durch exzessives Sytax-parsing.
3. bereits getauschte nicht nochmals ersetzten,
z.B. & nicht &
Das sollte mit einer RegExp gehen.