解决ThinkPHP升级5.1后输出字符被转义的问题。

最近给博客升级框架,由于从5.0过渡到5.1要修改的地方还蛮多的,加上之前一些代码在实际运行中略显低效,索性就把后端重构一下。把一些关键部位调整到位后刷新页面,发现原先用于输出备案信息的地方被转义输出成字符串了,印象中TP模版输出默认是使用htmlspecialchars函数的,既然能原样输出字符串,所以和后端改造的关联不大。

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

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

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

htmlentities()和htmlspecialchars()的区别。

一直用htmlspecialchars函数,htmlentities别说用了,一点印象都没有(汗,还是手册看少了)。特地去翻了下手册,htmlentities就是将所有字符转换为HTML实体,也就是全部转义输出。而htmlspecialchars是把预定义的字符转换为HTML实体。htmlspecialchars字符包括连接符(&)、双引号(")、单引号(')、小于(<)、大于(>)。如果需要把HTML实体再转换为字符,这两个函数都提供了一个decode函数分别是html_entity_decode()、htmlspecialchars_decode(),拼写有区别,前面是拆分html和entity加下划线后追加_decode的,而后者是直接补_decode后缀的。

PS.刚刚升级PHP版本和Mysql版本,卡不出来了,就差点删库跑路了,笑~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏平凡文摘

JDK 10 的 109 项新特性

1032
来自专栏Golang语言社区

(译)Go 语言的内存、指针详解

这是一篇面向即将学习 go 语言并且对指针理念或者 go 的指针类型不是很了解的程序员的内容 什么是指针? 简单解释,指针就是指向另一段地址的值,课本上是这么解...

47114
来自专栏Kevin-ZhangCG

二十三种设计模式总结

定义:Ensure a class has only one instance, and provide a global point of access to...

1022
来自专栏从流域到海域

《笨办法学Python》 第16课手记

《笨办法学Python》 第16课手记 本节课在上一节的基础之上加入了对文件的写操作,代码较长,请注意不要有遗漏。 原代码如下: from sys import...

2148
来自专栏极客编程

测试利器Mocha

mocha 是一个功能丰富的javascript测试框架,可以运行在nodejs和浏览器环境,使异步测试变得简单有趣。mocha 串联运行测试,允许灵活和精确地...

1072
来自专栏程序员宝库

PHP 中被忽略的性能优化利器:生成器

如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,...

3136
来自专栏老九学堂

2016计算机二级Java考试真题大放送,还不快收藏!

1、[单选题] 在软件开发中,需求分析阶段可以使用的工具是(  )。 A.N-S图 B.DFD图 C.PAD图 D.程序流程图 参考答案:B 参考解析:在软...

3564
来自专栏tkokof 的技术,小趣及杂念

HGE系列之六 管中窥豹(资源管理)

记的上次浮光掠影的讲了一些HGE中的基础类别,不知大家了解了多少,仔细看过的朋友肯定知道当时在讲述一个类别的构造函数时我打了个马虎,直接略过了,原因说的好像是...

791
来自专栏JackieZheng

Hadoop阅读笔记(七)——代理模式

  关于Hadoop已经小记了六篇,《Hadoop实战》也已经翻完7章。仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序、单表链接等,想得其精髓,...

21510
来自专栏Java后端技术栈

MyBatis关联映射:一对一、一对多总结一二

(3)用户实体对象,com.xuliugen.mybatis.demo.bean.User

991

扫码关注云+社区

领取腾讯云代金券