Laravel 5 Parsedown возвращает простые HTML-теги в браузер

Я установил parsedown (я использую laravel 5) для разбора уценки, и когда я его запускаю, он меняет уценку на html, но браузер просто показывает разобранную уценку вместо применения этих конкретных стилей, например, когда я запускаю следующее

{{Parsedown::instance()->text('Hello _Parsedown_!')}}

Я ожидаю, когда я запускаю его в браузере: Hello Parsedown!

но вместо этого я получаю следующее:<p>Hello <em>Parsedown</em>!</p>и когда я просматриваю исходный код страницы браузера, я получаю следующее &lt;p&gt;Hello &lt;em&gt;Parsedown&lt;/em&gt;!&lt;/p&gt; В чем может быть проблема?

1 ответ

Решение

В laravel 5 или 5.x {{ }} будет анализировать HTML для HTML-объектов. Чтобы избежать лезвия HTML предоставил способ, который {!! !!}, Это будет печатать HTML вместо HTML объектов.

Таким образом, ваш ответ будет таким, как показано ниже

{!! Parsedown::instance()->text('Hello _Parsedown_!') !!}

См. Ссылку (ниже), взятую с официального сайта laravel.

Отображение неэкранированных данных

По умолчанию Blade {{ }} операторы автоматически отправляются через функцию htmlentities в PHP, чтобы предотвратить атаки XSS. Если вы не хотите, чтобы ваши данные были экранированы, вы можете использовать следующий синтаксис:

Hello, {!! $name !!}.
Другие вопросы по тегам