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 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
随时给自己贴的图片加文字的php代码
Mar 08 PHP
PHP MVC模式在网站架构中的实现分析
Mar 04 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
php连接mssql的一些相关经验及注意事项
Feb 05 PHP
Youku 视频绝对地址获取的方法详解
Jun 26 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
Sep 23 PHP
php实现购物车功能(下)
Jan 05 PHP
PHP封装的page分页类定义与用法完整示例
Dec 24 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截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
PHP 第二节 数据类型之数组
2012/04/28 PHP
PHP 读取和编写 XML
2014/11/19 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
js控制table合并具体实现
2014/02/20 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
Python实现的桶排序算法示例
2017/11/29 Python
Python3远程监控程序的实现方法
2019/07/15 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
三维科技面试题
2013/07/27 面试题
端口镜像是怎么实现的
2014/03/25 面试题
医师定期考核实施方案
2014/05/07 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
廉政承诺书2015
2015/04/28 职场文书
小学安全工作总结2015
2015/05/18 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis
Python安装使用Scrapy框架
2022/04/12 Python