2 qb47215 qb47215 于 2015.07.08 16:58 提问

为什么页面中总输出html标签啊,而不转义成对应的样式? 5C

![图片说明](http://img.ask.csdn.net/upload/201507/08/1436345699_104846.png)图片说明

如图:在页面中显示的就是原代码。还有文章中的


标签页都输出到页面了。
用{{ $str }}输出一个html片段,也会直接输出字符串".....",而不会变成下拉列表。
用的是laravel5.1框架,blade模板引擎。求解啊!!

7个回答

qb47215
qb47215   2015.07.08 17:02

图片说明

qb47215
qb47215   2015.07.08 17:04

图片说明

qq_27729441
qq_27729441   2015.07.08 17:25

是不是页面返回的不是html的类型

hxp520520
hxp520520   2015.07.08 17:56

酱油,木有接触过。感觉是标签木有被编译

diaoliwei2
diaoliwei2   Rxr 2015.07.08 19:45

可以看看html源码被输出的外面是被什么包着。刚看{{ }}还以为是angularjs呢

frank_20080215
frank_20080215   2015.07.08 22:51

主要是str到底是什么内容

save4me
save4me   Ds   Rxr 2015.07.09 00:12

根据官网的说明Blade Templates

Displaying Unescaped Data

By default, Blade {{ }} statements are automatically sent through PHP's htmlentities function to prevent XSS attacks. If you do not want your data to be escaped, you may use the following syntax:

Hello, {!! $name !!}.
Note: Be very careful when echoing content that is supplied by users of your application. Always use the double curly brace syntax to escape any HTML entities in the content.

默认情况下,变量会使用php的htmlentities进行转义处理以防止XSS攻击。如果不想转义,使用下面的{!! $list['article'] !!}试试。

Csdn user default icon
上传中...
上传图片
插入图片