Задать вопрос
@michaelromanov90

Как проверить строку на валидность HTML?

Ребят, такая ситуация.

  1. Я имею некоторую строку в php
  2. Я удаляю из неё некоторые теги, которые мне не нужны. P, a и некоторые другие - сохраняю
  3. Затем я режу строку по кол-ву символов
  4. В результате в моей строке может быть неверная архитектура тегов
  5. Даже если я сделаю всё правильно, злоумышленник может изначально подменить / вставить свою строку с
    "битой" архитектурой тегов



Далее мне нужно распечатать её на странице. Я не могу гарантировать, что все теги в ней закрыты. Разумеется, сайт от этого просто "плывёт", потому, что браузер сам пытается закрыть теги, разумеется, делая это не так как надо.

У меня есть метод (php), который закрывает теги, но и он не справляется в 100% случаев.

Вот примерно то, что идёт на распечатку (абстрактный пример)

<p><img src="http://test-site.ru/upload/pravo-comment/2017/09/06/12/1435/db53af879975e15eec36501d9fe614e6.gif"></p><p>Иванов Иван19 Сентября 2017, 23:38


ta datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata data

00
Иванов Иван19 Сентября 2017, 23:38</p><a href="http://test-site.ru/id11">Иванов Иван</a>19 Сентября 2017, 23:38<p>ta datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata data</p>00<a href="http://test-site.ru/id


Что посоветуйте, ребят?) Мне важно сохранить теги.

Мне бы в идеале метод или скрипт, который бы валидировал строку. И возвращал true/false. Ну или на худой конец хороший метод по закрытию тегов. Те, что я нашёл - работают по-разному, но что-то всегда пропускают.
  • Вопрос задан
  • 453 просмотра
Подписаться 1 Оценить 7 комментариев
Решения вопроса 1
@MrTimon
пожешь попробовать ф-цию DOMDocument::loadHTML
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы