slo_nik
@slo_nik

Как вывести форматированный текст YII2?

Доброе утро.
Возник вопрос на тему вывода форматированного текста в views.
Сайт сделан на Yii2.
Смысл в следующем. Пользователь загружает текстовый файлы(.docx, .odt, .txt), текст с файла считывается и записывается в базу. Текст может содержать в себе таблицы, списки и т.д. и т.п.
При выводе на странице сайта текст выводится при помощи Html::encode() и если в тексте есть html-теги, то, естественно, все теги экранируются.
Чтобы сохранить форматирование можно отключить экранирование html-тегов используя Html::decode(), но тогда возникает другая проблема. Пользователь может вписать в файл какой либо js код или ещё какую-то гадость.
Можно обработать текст при помощи strip_tags(), передав вторым параметром, какие теги не очищать.
Но будет ли это достаточным способом?
Вопрос в следующем, как можно сохранить форматирование текста, но при этом избежать срабатывания js кода или какой либо гадости?
  • Вопрос задан
  • 1536 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
В Yii есть yii\helpers\HtmlPurifier. Кстати советую его всегда использовать перед записью в базу данных полученных от пользователя.
Вот полные доки по этой библиотеке htmlpurifier.org
Там можно гибко настроить чистку любых тегов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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