HTML DOM Validator - PHP или JavaScript - PullRequest
       5

HTML DOM Validator - PHP или JavaScript

2 голосов
/ 23 августа 2009

Я публикую форму с текстовой областью.

Я разрешаю размещать HTML.

Теперь я хочу проверить, закрыл ли пользователь теги, которые он поместил в HTML, который он опубликовал ... когда я отображаю этот HTML-код, испорченные теги, такие как div, таблицы и т. Д., Портят весь экран страницы ... любой способ проверить правильность использования тегов в php или javascript?

Любые указатели или помощь будут оценены.

Спасибо

Ответы [ 2 ]

2 голосов
/ 23 августа 2009

Возможно, вы захотите взглянуть на PHP-инструмент под названием HTMLPurifier - имеется демонстрационная страница , если вы хотите быстро проверить, на что он способен.

Он принимает «сортировку» HTML в качестве ввода и дает правильно сформированный HTML в качестве результата; таким образом, вы не заставляете своих пользователей вводить правильно сформированный HTML, но вы можете «исправить» то, что они ввели.

Еще одна приятная вещь - вы можете указать, какие теги и атрибуты разрешены; что тоже хорошо для безопасности:

  • , вы можете разрешить теги <p> и <strong>, но не <script>.
  • Вы также можете разрешить <a> + href; но не <a> + onclick


Например, вот какой-то не совсем правильно сформированный HTML, который вы можете ему дать:

<p>this is a <strong>test</p>
<script type="text/javascript">alert('glop');</script>
<p>And this is another <em>te<strong>st</em></strong></p>

А вот правильно сформированный / защищенный HTML, заданный в качестве вывода:

<p>this is a <strong>test</strong></p>
<p>And this is another <em>te<strong>st</strong></em></p>

Что изменилось?

  • тег <strong> в первом абзаце был автоматически закрыт
  • тег <script> и его содержимое были удалены
  • исправлен порядок закрытия тегов <em> и <strong> во втором абзаце.

Конечно, это был только быстрый пример - надеюсь, это помогло.

0 голосов
/ 23 августа 2009

Я не совсем уверен, чего вы пытаетесь достичь. Если вы ищете многофункциональный текстовый редактор, попробуйте одно из более зрелых доступных решений, а не пытайтесь изобретать колесо

http://www.queness.com/post/212/10-jquery-and-non-jquery-javascript-rich-text-editors

Вам понадобятся регулярные выражения для проверки закрытых тегов. Это немного сложно для тех, кто не знаком с регулярными выражениями.

Используйте этот поиск в качестве отправной точки: http://www.google.com.kw/search?q=regex+html+tags

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...