laravel Blade {{}}或{!! !!}声明

时间:2016-05-29 05:08:07

标签: laravel

在laravel文档中,他们使用{{ }}但不使用{!! !!}来表示Blade语句。 但是有些人说他们更喜欢!!而不是{{

使用!!的原因是什么?

3 个答案:

答案 0 :(得分:3)

{{ Escaped variable }}

{!! Unescaped variable !!}

来自documentation

的引用
  

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

     

Hello, {!! $name !!}

答案 1 :(得分:2)

{{ }}将逃避所有特殊字符以防止xss攻击,同时{!! !!}将为您提供原始结果。

{{ "<script>alert('hi');</script>" }} == &lt;script&gt;alert(&#039;hi&#039;);&lt;/script&gt;

{!! "<script>alert('hi');</script>" !!} == <script>alert('hi');</script>

答案 2 :(得分:1)

请阅读docs

  

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

Hello, {!! $name !!}.

虽然在使用后者时要格外小心。