php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析


Posted in PHP onJune 25, 2019

本文实例讲述了php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法。分享给大家供大家参考,具体如下:

这个函数非常重要,特别是在处理中文字符时,同时开发过程中往往需对写入数据库或读取数据库的数据进行处理。

htmlspecialchars(string,flags,character-set,double_encode)

1、string:必需。规定要转换的字符串。

2、flags:可选,规定如何处理引号、无效的编码以及使用哪种文档类型,如ENT_COMPAT、ENT_QUOTES、ENT_NOQUOTES

3、character-set:可选,顾名思义字符集,默认utf-8,当然支持很多编码,这里不列举

4、double_encode:可选,一个规定了是否编码已存在的 HTML 实体的布尔值。

预定义的字符是:

1、& (和号)成为 &
2、” (双引号)成为 ”
3、' (单引号)成为 ‘
4、< (小于)成为 < > (大于)成为 >

那么什么是HTML实体?

1、 在 HTML 中,某些字符是预留的。
2、在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签,当然在HTML中还有其他实体
3、如果希望正确地显示预留字符,我们必须在HTML源代码中使用字符实体(character entities)。
4、如需显示小于号,我们必须这样写:< 或 <使用实体名而不是数字的好处是,名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。

示例:

<?php
$str = "Apple & 'Orange'";
  echo htmlspecialchars($str, ENT_COMPAT); // 默认,仅编码双引号
  //在右键查看源代码下结果为:Apple & 'Orange'
  echo htmlspecialchars($str, ENT_QUOTES); // 编码双引号和单引号
  //在右键查看源代码下结果为:Apple & 'Orange'
  echo htmlspecialchars($str, ENT_NOQUOTES); // 不编码任何引号
  //在右键查看源代码下结果为:Apple & 'Orange'
//扩展阅读htmlspecialchars_decode() — 将特殊的 HTML 实体转换回普通字符
?>

补充:htmlspecialchars_decode() — 将特殊的 HTML 实体转换回普通字符

htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符。

被解码的 HTML 实体:

& 解码成 & (和号)
" 解码成 " (双引号)
' 解码成 ' (单引号)
< 解码成 < (小于)
> 解码成 > (大于)

示例:

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars_decode($str);
?>

输出:

This is some <b>bold</b> text..

PHP 相关文章推荐
php discuz 主题表和回帖表的设计
Mar 13 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
PHP文件上传原理简单分析
May 29 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
Mar 17 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
php for 循环使用的简单实例
Jun 02 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
Jul 23 PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 PHP
php 算法之实现相对路径的实例
Oct 17 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
Laravel向公共模板赋值方法总结
Jun 25 #PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 #PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 #PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 #PHP
提高Laravel应用性能方法详解
Jun 24 #PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 #PHP
PHP中的self关键字详解
Jun 23 #PHP
You might like
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
js实现整体缩放页面适配移动端
2020/03/31 Javascript
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python的math模块中的常用数学函数整理
2016/02/04 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
想学python 这5本书籍你必看!
2018/12/11 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
C#如何进行LDAP用户校验
2012/11/21 面试题
学生打架检讨书大全
2014/01/23 职场文书
班组长岗位职责
2014/03/03 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
公司承诺函范文
2015/01/21 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
金砖之国观后感
2015/06/11 职场文书
春季运动会加油词
2015/07/18 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS