【发布时间】:2015-06-27 01:01:11
【问题描述】:
我有一个 $text 变量,其中包含一些文本和 HTML 代码。我想渲染它的 HTML,但仍然要确保字符串的其余部分被转义。
$text = 'Example text with image <img src"image_1.jpg">. More text...'
// This will render the HTML but will NOT escape the string
{!! $text !!}
// This will escape and display the variable as raw string, with no HTML rendering
{{ $text }}
在 Laravel 5 中,有没有办法在允许 HTML 的同时使用 Blade 转义字符串?
【问题讨论】:
-
“转义”是什么意思?
-
我的意思是通常通过 Blade 中的双花括号实现的 XSS 保护 -
{{...}}。似乎我只能同时拥有两个中的一个:没有 HTML 渲染的转义字符串或没有转义的渲染...... -
应用程序应该如何决定是否必须转义 HTML 标签?转义的真正目的是不呈现 HTML。
-
@lukasgeiter 我明白了。只是想知道 Blade 中是否有办法指定这种行为 - 例如通过指定允许的字符等。所以我能做到这一点的唯一方法是使用原生 PHP?我还记得 Blade 在后台使用了一个
e()函数。有用吗? -
@lukasgeiter 你不太对。转义的 HTML 中可以有允许的标签,如
div、p、b、td等。
标签: php laravel laravel-5 blade