Laravel 5 Parsedown 将纯 html 标签返回到浏览器

Posted

技术标签:

【中文标题】Laravel 5 Parsedown 将纯 html 标签返回到浏览器【英文标题】:Laravel 5 Parsedown returning plain html tags to browser 【发布时间】:2015-10-04 22:31:37 【问题描述】:

我已经安装了 parsedown(我使用 laravel 5)来解析 markdown,当我运行它时,它会将 markdown 更改为 html,但是浏览器清楚地显示了解析后的 markdown,而不是应用那些特定的样式,例如当我运行关注

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

我希望当我在浏览器中运行它时: 你好解析

但是却得到以下信息: <p>Hello <em>Parsedown</em>!</p> 当我查看浏览器页面源时,我得到以下信息 <p>Hello <em>Parsedown</em>!</p> 可能是什么问题?

【问题讨论】:

如果您觉得我的回答有帮助,那么您可以接受。 非常感谢 Pratik Soni.. 成功了!! 【参考方案1】:

在 laravel 5 或 5.x 中, 会将 HTML 解析为 html 实体。为了逃避 HTML 刀片已经提供了!! !! 的方式。这将打印 html 而不是 html 实体。

所以你的答案如下

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

请参阅取自 laravel official site 的参考资料(如下)。

显示未转义的数据

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

Hello, !! $name !!.

【讨论】:

发布答案时不要只发布一些代码,请提供一些信息,说明为什么这是问题的解决方案。 @Bogdan 非常感谢您的建议。我很抱歉。 @Bogdan 我已经按照您的描述编辑了我的答案。如果您有时间,请看一下,让我知道它是否完美。所以我可以改进它。再次感谢

以上是关于Laravel 5 Parsedown 将纯 html 标签返回到浏览器的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5 中更改语言

php Parsedown - Markdown_to_HTML

Laravel 5.5 - 图像验证不起作用

Laravel 邮件:传递字符串而不是视图

Angular/Laravel CORS 问题:同源策略不允许读取远程资源

如何使用 NestJS 将纯文本作为我的请求正文传递?