我正在通过laravel挖掘,我了解了刀片视图的解释方式以及我遇到的是:
此:
{{ $tenant->name }}
转换为:
<?php echo e($tenant->name); ?>
我不明白e()
方法的用途是什么?我也无法在php.net上找到它,所以我猜它是laravel 5本身的一部分。但是它做了什么?
答案 0 :(得分:18)
来自文档:
E()
e函数在给定字符串上运行htmlentities:
echo e('<html>foo</html>');
// <html>foo</html>
答案 1 :(得分:1)
说你打算在网页上打印数据库中的一些数据,或者作为输入输入数据库,
{{ $tenant->name }}
并认为$tenant->name
的价值类似于
<script>
alert("Errors....");
</script>
在浏览器中呈现此内容后,您将获得alert
。这是一个安全问题,因此我们需要避免呈现这些内容,并且我们不需要在数据库中使用这些类型的数据。
所以我们需要清理那些数据
做那个laravel提供了一些选择
HTML::entities($tenant->name);
和e()
是辅助函数HTML::entities
您可以使用
获得相同的行为 e($tenant->name);
如果$tenant->name
为<script>alert("Errors....");</script>
,则在申请e()
后,您将获得以下内容,
"<script>
alert("Errors....");
</script>"
这不再是脚本处理
这是一个很好的recipe
或有一种简单的方法可以做到这一点
使用三重花括号{{{ }}}
而不是双花括号{{ }}
这也会消毒内容。