我有包含URL标记的纯文本,如下所示:
$string = "This is a good \[example\]\(http://www.example.com\) for my problem."
现在我想将此变量$string
传递给Blade模板,然后像这样解析:
This is a good <a href='http://www.example.com'>example</a> for my problem.
但是,由于{{ }}
使用htmspecialchars,输出看起来像:
This is a good < ;a href='http://www.example.com'> ;example< ;/a> ; for my problem.
目前,我使用控制器中的自定义函数将字符串解析为所需的输出,并将其显示在带有{! $parsed_string !}
的Blade模板中。有没有办法在Laravel中更改函数{{}}
的默认行为?
答案 0 :(得分:4)
使用{!! $yourVariable !!}
可以输出html元素。
来自laravel docs:
显示未转义数据
默认情况下,会自动发送Blade
{{ }}
语句 PHP的htmlspecialchars功能可以防止XSS攻击。如果你不 希望您的数据被转义,您可以使用以下语法:
Hello, {!! $name !!}.
答案 1 :(得分:0)
如果您不想转义{{}}内的任何特殊字符,可以使用
{!! ....你的HTML代码.... !!}