在php中,htmlspecialchars_decode()函数是用来把一些预定义的HTML实体转换为字符,返回转换后的字符串,原字符串不变;
将被转换的HTML实体有:
- &:转换为&;
- ":转换为";
- ':转换为';
- <:转换为<;
- >:转换为>;
htmlspecialchars_decode()函数是htmlspecialchars()函数的反函数,htmlspecialchars()函数是用来将特殊字符转换为HTML实体;
htmlspecialchars_decode()函数有两个参数,第一个参数用来规定需要转换为字符的HTML实体字符串;第二个参数是PHP 5.4中新增的可选参数,用来规定如何处理引号以及使用哪种文档类型,可能的值见下边参数说明;
htmlspecialchars_decode()函数语法格式
$newStr = htmlspecialchars_decode(string,flags);
参数说明
- string:规定需要转换为字符的HTML实体字符串;
- flags:PHP 5.4中新增的可选参数,规定如何处理引号以及使用哪种文档类型,可选参数。
可用的引号类型:
- ENT_COMPAT - 默认。仅解码双引号;
- ENT_QUOTES - 解码双引号和单引号;
- ENT_NOQUOTES - 不解码任何引号;
规定使用的文档类型的附加flags:
- ENT_HTML401 - 默认。作为 HTML 4.01 处理代码;
- ENT_HTML5 - 作为 HTML 5 处理代码;
- ENT_XML1 - 作为 XML 1 处理代码;
- ENT_XHTML - 作为 XHTML 处理代码;
实例:
- <?php
- header("content-type:text/html;charset=utf-8");//设置编码,解决中文乱码
- $string = "ggbiji & 'ggbiji'";
- $newStr1 = htmlspecialchars_decode($string, ENT_COMPAT); // 默认,仅解码双引号
- $newStr2 = htmlspecialchars_decode($string, ENT_QUOTES); // 解码双引号和单引号
- $newStr3 = htmlspecialchars_decode($string, ENT_NOQUOTES); // 不解码任何引号
- echo $newStr1."<br/>\n";
- echo $newStr2."<br/>\n";
- echo $newStr3."<br/>\n";
- ?>
运行结果:
HTML输出如下(查看源代码):
更多操作字符串的函数——>PHP String字符串函数大全
来源:oschina
链接:https://my.oschina.net/u/588516/blog/3033737