我有一个字符串返回到我的一个视图,像这样:
$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'
我试图用Blade显示它:
{{$text}}
但是,输出是一个原始字符串,而不是呈现的HTML。我如何显示HTML与刀片在Laravel?
PS. PHP echo()正确显示HTML。
我有一个字符串返回到我的一个视图,像这样:
$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'
我试图用Blade显示它:
{{$text}}
但是,输出是一个原始字符串,而不是呈现的HTML。我如何显示HTML与刀片在Laravel?
PS. PHP echo()正确显示HTML。
当前回答
当您的数据包含HTML标记时,请使用
{!! $text !!}
当您的数据不包含HTML标记时,请使用
{{ $text }}
其他回答
这在Laravel 5.6中工作得很好
<?php echo "$text"; ?>
以不同的方式
{!! $text !!}
它不会呈现HTML代码并将其打印为字符串。
欲了解更多详细信息,请打开链接:-显示HTML与刀片
默认情况下,Blade{{}}语句通过PHP的htmlspecialchars函数自动发送,以防止XSS攻击。如果你不希望你的数据被转义,你可以使用下面的语法:
根据文档,你必须做以下事情来在你的Blade文件中渲染你的html:
{!! $text !!}
在回显应用程序用户提供的内容时要非常小心。在显示用户提供的数据时,通常应该使用转义的双花括号语法来防止XSS攻击。
对于拉拉维尔 5
{!!html_entity_decode($text)!!}
通过这个链接找到答案,见RachidLaasri的答案
你需要使用
{!! $text !!}
使用{{$text}}时,字符串将自动转义。
使用{! !美元的文本! !}来显示数据而不转义。只是要确保不要对来自用户且未被清理的数据执行此操作。