2016-12-13 3 views
0

Есть ли какая-то лучшая практика для проверки согласованности поля (полученного из HTML-формы), который должен быть отформатированным текстом Markdown?Как проверить поле с пометкой в ​​PHP?

Самое главное, я хотел бы обеспечить, чтобы представленный текст не содержал HTML/script.

На данный момент я достигаю этого с помощью функции PHP strip_tags().

Хотя основная идея формата уценки должна быть текстовой, я не уверен, что эта функция не повредит форматирование Markdown.

(насчет <http://www.example.com> синтаксиса, например?)

+1

Я думаю, вы можете найти этот репозиторий Github полезным для разбора MD-текста: https://github.com/erusev/parsedown –

+1

Если я не ошибаюсь, API Parsedown не предлагает какой-либо возможности проверить достоверность текста md. И повторное кодирование некоторого текста, уже отформатированного md, определенно испортит данные ... –

+0

Вы _tried it_ с ''? – Chris

ответ

0

Проверки Markdown действительности является на самом деле сложно. Вот это единственный способ я придумал, чтобы убедиться, что Markdown-закодированный текст хранится в безопасности:

  1. синтаксического анализа MarkDown текст HTML
  2. дезинфицировать HTML (например, с HTMLPurifier) ​​результат
  3. новообращенный назад в Markdown

Примечание: если вам нужно только подмножество уценки (например, мини-уценки StackOverflow использует для комментариев пользователей) с участием только ** жирный **, _italic_, `code` и [ссылки] (http://www.example.com), то с использованием strip_tags (это может привести к изменениям в выходе, но, по крайней мере, это безопасно).

Смежные вопросы