htmlspecialschars与htmlentities的区别
根据php手册,htmlentities与htmlspecialchars功能几乎是一模一样。唯一的差别就是,对于无效的代码单元序列(通俗讲就是不认识的编码)是否进行编码。htmlentities会进行编码,而htmlspecialchars不会。
举个简单的例子:
一个php文件是以utf-8格式编码的,里面存放中文字符,这时你使用htmlentities,而且encoding设置为ISO-8859-1, 中文字符就会被编码了,如下面
<?php
$str = '中文字符';
echo htmlentities($str, ENT_QUOTES, 'ISO-8859-1');
//中��符
echo htmlentities($str, ENT_QUOTES, 'UTF-8');
//中文字符
?>
htmlentites的使用
htmlentities(string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' [, bool $double_encode = true ]]] )后面可带4个参数。
<?php
//ENT_COMPAT不转化'字符,ENT_QUOTES转化
$str = "< ' \" > \n";
echo htmlentities($str, ENT_COMPAT);
echo htmlentities($str, ENT_QUOTES);
//ouput:
//< ' " >
//< ' " > //ENT_NOQUOTES单引号和双引号都不转化
//ENT_IGNORE于php5.3加入,对于无效的代码单元序列直接替换成empty string
//ENT_SUBSTITUTE与ENT_IGNORE类似,但不是用empty string替换。php5.4加入
//参数可以通过位运算加入:ENT_QUOTES | ENT_IGNORE //$encoding参数设置文档编码
//现在文档设置成ANSI编码,然后运行下面偌
$str = "< ' \" > 中文\n";
echo htmlentities($str, ENT_QUOTES, 'GB2312');
echo htmlentities($str, ENT_QUOTES, 'ISO8859-1');
echo htmlentities($str, ENT_QUOTES, 'BIG5');
//OUTPUT:
//< ' " > 中文
//< ' " > ÖÐÎÄ
//< ' " > 中文 //现在文档设置成UTF8编码,然后运行下面偌
$str = "< ' \" > 中文\n";
echo htmlentities($str, ENT_QUOTES, 'GB2312');
echo htmlentities($str, ENT_QUOTES, 'ISO8859-1');
echo htmlentities($str, ENT_QUOTES, 'UTF-8');
//OUTPUT:
//< ' " > 中æ??
//< ' " > 中æ??
//< ' " > 中文 ?>
htmlspecialschars与htmlentities的区别的更多相关文章
- php htmlentities和htmlspecialchars 的区别
很多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的. The translations ...
- PHP htmlentities 和 htmlspecialchars的区别
一直对这两个转换htm字符为html实体的函数混淆不清,查询了一下文档,总结如下 htmlentities: Convert all applicable characters to HTML ent ...
- strip_tags、htmlentities、htmlspecialchars的区别
一.strip_tags() 函数剥去字符串中的 HTML.XML 以及 PHP 的标签. strip_tags(string,allow) 注释:可通过allow设置允许的标签.这些标签不会被删除. ...
- PHP中 magic_quotes_gpc 和 magic_quotes_runtime 区别及其反斜线转义问题
php中关于反斜线转义: php中数据的魔法引用函数 magic_quotes_gpc 或 magic_quotes_runtime 设置为on时,当数据遇到 单引号' 和 双引号" ...
- PHP中magic_quotes_gpc和 magic_quotes_runtime区别及其反斜线转义问题
php中关于反斜线转义: php中数据的魔法引用函数 magic_quotes_gpc 或 magic_quotes_runtime 设置为on时,当数据遇到 单引号' 和 双引号&quo ...
- php过滤字段htmlentities,htmlspecialchars,strip_tags
1.strip_tags:过滤html标签比如<a> <html> <script> 如: $str = '<a href="test.html&q ...
- 过滤输入htmlentities与htmlspecialchars用法
过滤输入 (即来自所列数据源中的任何数据)是指,转义或删除不安全的字符.在数据到达应用的存储层之前,一定要过滤输入数据.这是第一道防线.假如网站的评论表单接收html,默认情况下 访客可以毫无阻拦地在 ...
- 153-PHP htmlentities函数
<?php //定义一个HTML代码字符串 $str=<<<HTM <a href=#><b><i>到一个网址的链接</i>&l ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
随机推荐
- Android开发学习--MVP模式入门
1.模型与视图完全分离,我们可以修改视图而不影响模型2.可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部3.我们可以将一个Presenter用于多个视图,而不需要改变Pr ...
- Laravel环境搭建
在有了初步认知后,当然就要开始在自己的电脑上搭建Laravel的开发环境了. 系统环境需求 PHP 5.3.7或者更高版本,如果没有系统没有安装PHP环境的,请到下面地址下载:http://cn2.p ...
- iOS 中集成百度echarts3.0
突然项目中要用到图表,所以就用了百度的echarts,然后就是网上搜了一下,由于本人的JS不是很熟悉,但是研究了一下还是做出来了,其实也不是很难 最后做的效果大概如下图这种,由于界面上没调整,所以粗糙 ...
- (1) Jenkins + Subversion + Maven + TestNG - 软件
软件需求 1 Jenkins http://jenkins-ci.org/ 2 Visual SVN Server https://www.visualsvn.com/server/ 3 Tortoi ...
- java内存查看与分析
业界有很多强大的java profile的工具,比如Jporfiler,yourkit,这些收费的东西我就不想说了,想说的是,其实java自己就提供了很多内存监控的小工具,下面列举的工具只是一小部分, ...
- Asp.Net MVC之 自动装配、动态路径(链接)等
一.Model层 using System; using System.Collections.Generic; using System.Linq; using System.Web; namesp ...
- OpenGL VAO, VBO 使用简介
参照代码样例: // This function takes in a vertex, color, index and type array // And does the initializati ...
- 数据结构算法 - ConcurrentHashMap 源码解析
五个线程同时往 HashMap 中 put 数据会发生什么? ConcurrentHashMap 是怎么保证线程安全的? 在分析 HashMap 源码时还遗留这两个问题,这次我们站在 Java 多线程 ...
- 360浏览器 收藏夹 ico 缓存 目录
C:\Users\Administrator\AppData\Roaming\360se6\apps\data\users\default\data\ico
- javascript的prototype经典使用场景
prototype的经典使用场景就是为对象增加属性和方法,如给自定义的Man对象增加个姓名属性和语言方法: function man() { this.age = "22&qu ...