Sie versuchen wahrscheinlich, das falsche Problem zu lösen. (Ich weiß, das ist nicht das, was Sie hören wollen.)
Wenn ein Benutzer nutzen darf nicht codierten >>
und <<
in HTML schreiben, dann vermutlich würden sie auch in der Lage sein <>
oder <b>
zu schreiben, und in diesem Fall gibt es keine Möglichkeit, Sie können zuverlässig zwischen Text und Markup unterscheiden. (Vergessen Sie nicht, dass dies für XSS-Angriffe anfällig ist.)
Sie müssen wirklich den Text abfangen und codieren vor es wird in HTML interpoliert. Wahrscheinlich sollten Sie den Workflow erklären, der zu Ihnen Problem führt. Es muss einen besseren Weg geben, es zu lösen.
Edit als Antwort auf Kommentar: Es gibt einfach keine Möglichkeit, Eingabe zuverlässig zu verschlüsseln, die Text oder HTML gleichzeitig sein kann. Jedenfalls, wenn Benutzer technisch genug sind, um Raw-HTML einzugeben, können sie vermutlich Entitäten schreiben - andernfalls sollte sie überhaupt nicht rohes HTML eingeben. Wenn die HTML-Eingabe nur für fortgeschrittene Benutzer gedacht ist, könnten Sie ein Kontrollkästchen haben, das angibt, ob die Eingabe Text oder HTML ist. Aber Sie sollten wahrscheinlich einen Rich-Text-Editor verwenden.
Smart würde sein "HTML schreiben" oder "Nur Text schreiben" - heuristisch zu bestimmen, welche Teile eines Strings HTML sind und welche sind Text, der Zeichen verwendet, die eine besondere Bedeutung in HTML haben * hard * (und wahrscheinlich unmöglich mit 100% Zuverlässigkeit zu tun haben). – Quentin
Ja, ich bin nicht auf der Suche nach einer perfekten Lösung. Die Sache ist, dass Benutzer die Möglichkeit haben, etwas Text mit HTML-Tags einzufügen. Aber sie werden verwendet, um Dinge einzufügen, die nicht HTML sind, wie >>. Also muss ich versuchen, sicherzustellen, dass der endgültige Inhalt in Ordnung ist. Es ist sehr schwer, den Benutzern zu erklären, dass sie stattdessen > und < verwenden sollten. – Drejc