我有一个按钮在我的网站,文本应该在2行。按钮中的文本由翻译功能trans()
使用语言文件提供的内容填充。
现在我面临的问题是,当我在语言文件中输入HTML(在本例中为<br>
)时,它将被转义而不被解析。
资源/lang/en/messages.php
return [
'iamaclown' = 'I am a<br>clown',
//...
];
资源/视图/foo.blade.php
<button>{{ trans( 'messages.iamaclown' ) }}</button>
这给了我输出
I am a<br> clown
但是我想
I am a
clown
有办法做到这一点吗?
要显示未转义的数据,请将trans( 'messages.iamaclown' )
包裹在
{!! trans( 'messages.iamaclown' ) !!}
默认情况下,为了防止XSS攻击,Blade的{{ }}
语句会自动通过PHP的htmlentities函数发送。
如果您不希望您的数据被转义,您可以使用以下语法:
The name of the website is, {!! $websiteName!!}.
注意:在回显应用程序用户提供的内容时要非常小心。始终使用双花括号语法转义内容中的任何HTML实体。