http://php.net/manual/zh/function.htmlspecialchars.php

很多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的。

这两个函数在格式化带有英文字符的html代码的时候基本没啥问题,但是htmlentities对中文字符也不放过,这样得出来的结果是中文字符 部分变为一堆乱码。当时做英文站的时候根本就没觉察到这个问题,而今天公司的一个收藏站却因为有有非英文字符而出现了问题,我最终查出来是 htmlentities这个函数的问题,同时我也找到了htmlspecialchars这个函数。

对于这两个函数,php手册上都是英文做的解释,其中在htmlentities函数的说明部分有这么一段英文:

This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities.

从这句话中我们也可以看出来这两个函数虽然基本功能差不多,但是还是有细微的差别在里面的。再仔细看htmlspecialchars函数里面的一段话:

The translations performed are:

‘&’ (ampersand) becomes ‘&’

‘”‘ (double quote) becomes ‘”‘ when ENT_NOQUOTES is not set.

”’ (single quote) becomes ”’ only when ENT_QUOTES is set.

‘<’ (less than) becomes ‘<’

‘>’ (greater than) becomes ‘>’

可以了解到htmlspecialchars只转化上面这几个html代码,而htmlentities却会转化所有的html代码,连同里面的它无法识别的中文字符也给转化了。

PHP中htmlentities跟htmlspecialchars的区别相关推荐

  1. PHP中htmlentities和htmlspecialchars的区别

    使用函数 htmlentities 后使中文变乱码,以至数据存到数据库全部是乱码.一直以为是MYSQL字符集设置问题,花了两天时间才找到原因.使用htmlspecialchars既可解决问题. 这两个 ...

  2. PHP中htmlentities和 htmlspecialchars区别

    简介: string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $enc ...

  3. PHP中文无法查询,php 中htmlentities导致中文无法查询问题

    在php中htmlspecialchars, 将特殊字元转成 HTML 格式,而htmlentities,将所有的字元都转成 HTML 字串 了,下面我来分别简单的介绍. htmlentities用法 ...

  4. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

  5. java中separator_java - File.separator和路径中的斜杠之间的区别

    java - File.separator和路径中的斜杠之间的区别 在Java Path-String中使用/和普通的File.separator有什么区别? 与双反斜杠相比,/平台独立似乎不是原因, ...

  6. PHP中self和static的区别,php中self与static的区别

    原文链接,猛击这里. php中self与static的区别 通过一些示例,我们可以很容易看出self和static的区别.假定我们有class Car – 它有两个方法,model和getModel. ...

  7. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析

    本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...

  8. php $this self,php中self与$this的区别

    学习php中self与$this的区别. 先来看下parent与self的例子: /* * parent与self的区别 * by www.jbxue.com */ class A{ function ...

  9. mysql中char与varchar的区别分析(补充一句,int和integer没区别)

    转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

最新文章

  1. python环境变量配置_python+ pycharm 环境安装 + pycharm使用
  2. Apache Kafka-生产消费基础篇
  3. java 登录牵手_Java: HttpURLConnection 模拟登录方法 (带cookie 的Post/Get)_20160908_七侠镇莫尛貝...
  4. HTML 取消超链接下划线
  5. 从零开始学前端:链接跳转 --- 今天你学习了吗?(CSS:Day03)
  6. OpenVINO(Version: 2021.3)系统需求
  7. Docker概述 官方文档 Google翻译
  8. 只有一个公网IP也可以使用LVS的DR模式!(外带php session粘滞问题解决)
  9. VC++ MFC 经典教程 – 基础篇
  10. FasterRCNN之整体框架详解
  11. python机器人仿真软件_最火的Python语言也能做机器人仿真,你会不?
  12. Google Chrome 浏览器安装教程
  13. 用html制作ps,ps制作图片的步骤
  14. 网课答案接口 查题系统
  15. eclipse配置--代码提示、xml提示
  16. 关机闹钟原理,Android和Iphone关机闹钟
  17. Pycharm报错:FutureWarning: `distplot` is a deprecated function and will be removed in a future version
  18. 计算机论文的技术路线图,怎么写好论文开题报告技术路线流程图
  19. stm32怎么加载字库_如何用STM32的片内Flash存储中文字库
  20. Haskell:理解Haskell中的CPS(Cont)

热门文章

  1. Nature子刊:厌氧消化链球菌促进结直肠癌发生及调节肿瘤免疫
  2. java 拉姆表达式_强大的拉姆表达式转Sql 类库 - SqlSugar 隐藏功能之Lambda
  3. pandas任取dataframe中的一个或者多个数据行(head、tail、loc、iloc),将抽取到的一个或者多个数据行复制N次形成新的dataframe
  4. pandas使用insert函数将dataframe特定数据列移动到第一列实战:Move a Column to First Position
  5. R语言配对图可视化:pivot_longer函数将宽格式的数据重塑为长格式并进行数据全连接和左连接(left join)、配对图可视化(根据分类变量的值为散点图上的数据点添加颜色)
  6. python使用matplotlib绘制水平条形图并在条形图上添加实际数值标签实战
  7. 项目快速开发的几点感悟
  8. github用相对路径显示图片_url-图像未显示在GitHub的README.md中
  9. Pandas中 DateFrame 修改列名
  10. 三十六、请求分页管理方式