Laravel:将Blade Blade Parser {{}}更改为Custom Parser?

时间:2017-10-02 07:29:26

标签: php laravel-5

我有包含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 &lt ;a href='http://www.example.com'&gt ;example&lt ;/a&gt ; for my problem.

目前,我使用控制器中的自定义函数将字符串解析为所需的输出,并将其显示在带有{! $parsed_string !}的Blade模板中。有没有办法在Laravel中更改函数{{}}的默认行为?

2 个答案:

答案 0 :(得分:4)

使用{!! $yourVariable !!}可以输出html元素。

来自laravel docs:

  

显示未转义数据

     

默认情况下,会自动发送Blade {{ }}语句   PHP的htmlspecialchars功能可以防止XSS攻击。如果你不   希望您的数据被转义,您可以使用以下语法:

     

Hello, {!! $name !!}.

答案 1 :(得分:0)

如果您不想转义{{}}内的任何特殊字符,可以使用
{!! ....你的HTML代码.... !!}