我希望在Laravel中保存并显示丰富的文字 有很多方法可以做到这一点(两个目的)。在我们看来,我们可以使用两个表达式:
{!! $text !!}
{!! html_entity_decode($text) !!}
我知道他们俩都是对的。但有时候第一个不起作用(例如当我想将WordPress的帖子复制到Laravel时)。他们之间有什么区别?
答案 0 :(得分:2)
使用{{ }}
代替{!! !!}
。根据{{3}}:
默认情况下,Blade
{{ }}
语句会自动通过PHP的htmlspecialchars函数发送,以防止XSS攻击。如果您不希望转义数据,可以使用以下语法:Hello, {!! $name !!}
答案 1 :(得分:1)
您可以找到相关文档here。
第一个$text
没有被解码,秒就是。
区别在于:
<b>bold</b>
你的第一个例子将回显这个没用的精确字符串。 例如
&LT b取代;粗体&LT; / B个
作为字符串文字。这不会呈现为粗体。
第二个例子将此解码为
<b>bold</b>
将呈现为
粗体强>
然而,这确实需要一个非常大的警告,每个答案要求使用{!! !!}
。
{!! !!}
之间的所有代码都有执行用户放置的随机脚本的危险。请注意这些安全隐患以及$text
的来源
有关回显数据的更多信息可以在at the laravel documentation找到。