Laravel 5 Parsedown将普通的html标签返回给浏览器

use*_*932 5 html php markdown laravel parsedown

我安装了parsedown(使用laravel 5)来解析markdown,当我运行它时,它将markdown更改为html但是浏览器显然显示解析的markdown而不是应用这些特定的样式,例如当我运行以下内容时

{{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; 可能是什么问题?

Pra*_*oni 5

在 laravel 5 或 5.x 中,{{ }}会将 HTML 解析为 html 实体。转义 HTML 刀片提供了{!! !!}. 这将打印 html 而不是 html 实体。

所以你的答案如下

{!! Parsedown::instance()->text('Hello _Parsedown_!') !!}
Run Code Online (Sandbox Code Playgroud)

请参阅取自laravel 官方网站的参考资料(以下)。

显示未转义的数据

默认情况下,Blade{{ }}语句会通过 PHP 的 htmlentities 函数自动发送,以防止 XSS 攻击。如果您不希望您的数据被转义,您可以使用以下语法:

Hello, {!! $name !!}.
Run Code Online (Sandbox Code Playgroud)