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#多用于业务系统的开发 ...
随机推荐
- 员工管理系统(集合与IO流的结合使用 beta3.0 BufferedReader / ObjectOutputStream)
Employee.java package cn.employee_io; public class Employee { private String empId; private String n ...
- VUE 入坑系列 一 双向绑定
html代码 <div id="app"> <p>{{message}}</p> <span>message1</span&g ...
- win8怎么打开或关闭快速启动(进入BIOS前的设置)
win8系统之后,系统添加了快速启动功能,这让Windows的启动速度快了不少.但是,任何事物有利有弊,相信不少人在进入BIOS或者重装系统时遇到了麻烦.接下来我们看看在win8及以上版本怎么打开或关 ...
- Bash Template
#/bin/bash #set -x set -e usage() { cat <<EOF Usage: `basename $` [OPTIONS] <non-option arg ...
- C#筆記--DataGridView使用
1.databingcomplete 当数据源的内容更改时,或者当 DataSource.DataMember 或 BindingContext 属性的值更改时,会引发此事件. 例如,如果要基于内容更 ...
- 计算机内存数据存储基本原理----寄存器和RAM的电路基础
计算机里存储数据主要有这几个部件:CPU里的寄存器和缓存.内存(内存条)和磁盘,这里我们主要简单讲下寄存器和内存条的基础实现电路. 在前面的文章<CPU怎么计算1+1----CPU计算的电路基础 ...
- VS调试debug的即时窗口的使用
例:
- android 获取application和activity下meta-data中的值
meta-data在AndroidManifest中是以键值对的形式存在的,可以将meta-data放在application根节点下,也可以放在某个activity节点下.因为存放的位置不同,因此获 ...
- android网络图片自动轮播 githhub地址
https://github.com/panxw/android-image-indicator
- Linux从入门到适应(一):VSCode C++环境配置
作为在Windows环境下习惯使用Visual Studio IDE的人,对于Linux环境下的Vim编辑使用十分难受,虽然网上很多人说vim非常牛逼和强大,但是我更加习惯于使用VS code的界面, ...