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的bbs设计(一)
Oct 09 PHP
PHP5中的this,self和parent关键字详解教程
Mar 19 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
PHP中HTML标签过滤技巧
Jan 07 PHP
详解PHP中的Traits
Jul 29 PHP
php实现递归的三种基本方式
Jul 04 PHP
Thinkphp无限级分类代码
Nov 11 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
PHP实现接收二进制流转换成图片的方法
Jan 10 PHP
php 浮点数比较方法详解
May 05 PHP
PHP多维数组排序array详解
Nov 21 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 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利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
一端时间轮换的广告
2006/06/26 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
vue实现抽屉弹窗效果
2020/11/15 Javascript
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
详解用python写一个抽奖程序
2019/05/10 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
PyTorch中permute的用法详解
2019/12/30 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
美国知名艺术画网站:Art.com
2017/02/09 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
生日主持词
2014/03/20 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
Redis实现短信验证码登录的示例代码
2022/06/14 Redis