Laravel 5 Parsedown возвращает простые HTML-теги в браузер
Я установил parsedown (я использую laravel 5) для разбора уценки, и когда я его запускаю, он меняет уценку на html, но браузер просто показывает разобранную уценку вместо применения этих конкретных стилей, например, когда я запускаю следующее
{{Parsedown::instance()->text('Hello _Parsedown_!')}}
Я ожидаю, когда я запускаю его в браузере: Hello Parsedown!
но вместо этого я получаю следующее:<p>Hello <em>Parsedown</em>!</p>
и когда я просматриваю исходный код страницы браузера, я получаю следующее
<p>Hello <em>Parsedown</em>!</p>
В чем может быть проблема?
1 ответ
В laravel 5 или 5.x
{{ }}
будет анализировать HTML для HTML-объектов. Чтобы избежать лезвия HTML предоставил способ, который{!! !!}
, Это будет печатать HTML вместо HTML объектов.
Таким образом, ваш ответ будет таким, как показано ниже
{!! Parsedown::instance()->text('Hello _Parsedown_!') !!}
См. Ссылку (ниже), взятую с официального сайта laravel.
Отображение неэкранированных данных
По умолчанию Blade {{ }}
операторы автоматически отправляются через функцию htmlentities в PHP, чтобы предотвратить атаки XSS. Если вы не хотите, чтобы ваши данные были экранированы, вы можете использовать следующий синтаксис:
Hello, {!! $name !!}.