Laravel - 显示富文本

Laravel - show rich text

我想在 Laravel 中保存并显示富文本格式。
有很多方法可以做到这一点(用于两个目的)。在我们看来,我们可以使用两个表达式:

  1. {!! $text !!}
  2. {!! html_entity_decode($text) !!}

我知道他们两个都是对的。但第一个有时不起作用(例如,当我想将 WordPress 帖子复制到 Laravel 时)。它们有什么区别?

使用 {{ }} 而不是 {!! !!}。根据Laravel's documentation:

By default, Blade {{ }} statements are automatically sent through PHP's htmlspecialchars function to prevent XSS attacks. If you do not want your data to be escaped, you may use the following syntax: Hello, {!! $name !!}

您可以找到相关文档here

第一个 $text 没有被解码,第二个被解码。

区别例如:

<b>bold</b>

您的第一个示例将回显这个没有用的确切字符串。 例如

<b>bold</b>

作为字符串文字。这不会呈现为粗体。

第二个例子会将其解码为

<b>bold</b>

将呈现为

bold

然而,这确实需要一个非常大的警告,就像每个要求使用 {!! !!} 的答案一样。 例如,{!! !!} 之间的所有代码都有执行用户放置的随机脚本的危险。请注意这些安全隐患以及您的 $text.
的来源 有关回显数据的更多信息,请参见 at the laravel documentation.