У меня есть wiziwig-редактор, который генерирует код HTML, пример:
<p class="line" id="line-1"><span style="color: rgb(230, 0, 0);"><span style="background-color: rgb(255, 153, 0);">affasf</span></span><span style="background-color: rgb(255, 255, 255);"><span style="color: rgb(230, 0, 0);"><span style="background-color: rgb(255, 153, 0);">dadssadasda</span></span></span></p><p class="line" id="line-35">эллэл</p><p class="line" id="line-43">шхохохх</p><p class="line" id="line-56"><span style="color: rgb(230, 0, 0);"><span style="background-color: rgb(255, 153, 0);"><b>dddddad</b></span></span></p>
Он отправляется через Ajax и возвращается через Ajax при выводе.
Что я собираюсь делать:
1) заменяю < и > на [ и ]
2) удаляю кавычки из тегов
3) заменяю &,",' на их html представление
В этом виде я храню в БД
При выводе на клиент:
заменяю разрешенные теги:
[b] -> <b>
и прочее
Но возникла такая проблема: А что если кто-то не закроет тег, допустим [b], тогда весь низ будет жирным.
Есть ли способы решить проблему без подсчета открытых и закрытых тегов?
Может, лучше воткнуть все в Iframe? То с какими параметрами?
Есть ли другие варианты работы с HTML текстом?