php写网页6,thinkphp6输出原始html内容 - 旗云号

最近在做博客后端的时候,发现通过ueditor写的博客在前端显示的包含有html标签,后端框架使用的是thinkphp6(简称tp6),网上发现好多方法都是使用{$content|raw}方法,但是没有效果最后发现了下面的方法:

{$content|htmlspecialchars_decode}

处理前的效果:

2020031504411686.png

处理后的效果:

2020031504420945.png

使用raw方法不进行转义输出。

TP最近升级的很是生猛,只好去翻下手册了,在模版章节,使用函数部分,TP给了这样一个说法:为了避免出现XSS安全问题,默认的变量输出都会使用 htmlentities 方法进行转义输出。如果不想被转义,那只需要在变量后面加上raw方法即可,如:{$anji|raw}

除了raw方法,TP还给了一个配置方法,在template.php配置中添加一项’default_filter’ => ‘htmlspecialchars’,这样也可以将htmlentities 换成 htmlspecialchars过滤。

使用htmlspecialchars_decode把预定义的实体转为字符

上述使用raw方法输出后的内容,由于写入的关系,有可能不转义输出的结果是变成了预定义的实体字符,如果要继续达到被html解析的普通字符效果,还需要在将实体字符转换成普通字符,前述我们在配置文件中定义得利htmlspecialchars过滤,那么就需要使用htmlspecialchars_decode函数进行转换。如{$anji|raw|htmlspecialchars_decode}

htmlentities()和htmlspecialchars()的区别。

一直用htmlspecialchars函数,htmlentities别说用了,一点印象都没有(汗,还是手册看少了)。特地去翻了下手册,htmlentities就是将所有字符转换为HTML实体,也就是全部转义输出。而htmlspecialchars是把预定义的字符转换为HTML实体。htmlspecialchars字符包括连接符(&)、双引号(”)、单引号(’)、小于(

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值