【问题标题】:Document of Laravel about strange syntax [closed]Laravel 关于奇怪语法的文档 [关闭]
【发布时间】:2018-08-21 05:57:49
【问题描述】:

我在模板中看到了这个:

<span class="name">{!! test() !!}</span>

请帮我看一份这种语法的文档。 我搜索了,我不知道 Laravel 允许这种语法。

【问题讨论】:

标签: php laravel laravel-blade


【解决方案1】:

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

{!! $name !!}

也就是说,如果我通过一个名为name 的变量将数据传递给视图,并使用{{ $name }} 显示它,它将显示为传递,因为语句是通过PHP 的htmlspecialchars 函数自动发送以防止XSS攻击。例如,

return view('welcome')->with('name','<script>alert("Hai");</script>');

用于返回带有名为name和变量的数据的视图

<div class="title m-b-md">
    {{$name}}
</div>

用于显示我的数据。输出将是

如果我使用

<div class="title m-b-md">
    {!!$name!!}
</div>

显示数据,输出将是

【讨论】:

  • 非常感谢您的详细回答:)
【解决方案2】:

那只是unescaped data:

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

Hello, {!! $name !!}.

【讨论】:

  • 谢谢 :D 我省略了
猜你喜欢
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
  • 2018-05-14
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
相关资源
最近更新 更多