【问题标题】: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 !!}.