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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
php 读取shell管道传输过来的内容
Mar 01 PHP
深入php之规范编程命名小结
May 15 PHP
PHP、Java des加密解密实例
Apr 27 PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
PHP递归算法的简单实例
Feb 28 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 PHP
PHP 99乘法表的几种实现代码
Oct 13 PHP
PHP dirname功能及原理实例解析
Oct 28 PHP
imagettftext() 失效,不起作用
Mar 09 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
PHP制作用户注册系统
2015/10/23 PHP
js DOM模型操作
2009/12/28 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
jquery radio 操作代码
2011/03/16 Javascript
jQuery参数列表集合
2011/04/06 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
python如何实现单链表的反转
2020/02/10 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
一站式跨境收款解决方案:Payoneer(派安盈)
2018/09/06 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
C#实现启动一个进程
2016/10/01 面试题
实习生个人找工作的自我评价
2013/10/30 职场文书
专业销售业务员求职信
2013/11/18 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
仓管员岗位责任制
2014/02/19 职场文书
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL