php针对html实体字符串转义函数:htmlspecialchars,htmlspecialchars_decode

摘要

php中html实体转义解码函数:1:htmlentities,html_entity_decode;2:htmlspecialchars,htmlspecialchars_decode;很多PHP开发的人员只知道后者,却不知道前者;前者是转义所有字符为html实体;后者只转义所规定的几种普通字符为html实体;

htmlspecialchars

htmlspecialchars —  将普通字符转换成HTML实体

说明

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

只转义以下五种字符:

1. '&' => '&'

2. '"' =>  '"'

3. "'" => ''' (or ')

4. '<' => '&lt;'

5. '>' => '&gt;'

 

htmlspecialchars_decode

htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符

 

说明

string htmlspecialchars_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ] )

此函数的作用和 htmlspecialchars() 刚好相反。它将特殊的HTML实体转换回普通字符。

被转换的实体有: &amp;, &quot; (没有设置 ENT_NOQUOTES 时), &#039; (设置了 ENT_QUOTES 时), &lt; 以及&gt;。

 

php html实体转义函数

htmlentities

htmlentities — 将所有普通字符转换成HTML实体

 

说明

string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

此函数是全部转换html实体,和htmlspecialchars()区别在于,这个函数是转义全部的字符,而htmlspecialchars()仅仅转义上面限定的5个特殊字符!

如果想要解码,需要用html_entity_decode() 函数;把 HTML 实体转换为字符。

 

html_entity_decode

html_entity_decode — 将所有的 HTML 实体转换回普通字符

 

说明

string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") ]] )

<?php
$str="<a href='https://wwww.fujieace.com'>付杰博客</a><script>alert('付杰');</script>";
echo htmlentities($str);

echo '<br>';
echo htmlspecialchars($str);


echo '<br>';
echo htmlspecialchars_decode($str);

echo '<br>';
echo html_entity_decode($str);

 

由于博主没有用数据库来存取,直接是用的网页来查看的,因此转义的地方看不出来,如果你是把存取数据库的话,你就不能按照以上代码来用,存的时候用htmlspecialchars或htmlentities;取出来的时候可以根据自身的情况来看是否解码;如果要解码就用htmlspecialchars_decod或html_entity_decode;

 

重要提示:

htmlspecialchars()和 htmlspecialchars_decode()配合使用;

htmlentities()和 html_entity_decode()配合使用;

常用特殊字符列表:

特殊字符 说明 对应字符实体
< 小于号 &lt;
> 大于号 &gt;
空格 &nbsp;
& 和号 &amp;
" 双引号 &quot;
' 撇号 &apos;
© 版权 &copy;
® 注册商标 &reg;
    A+
发布日期:2016年12月27日 19:25:06  所属分类:PHP函数
最后更新时间:2016-12-27 20:07:00
付杰
  • ¥ 98.0元
  • 市场价:298.0元
  • ¥ 45.0元
  • 市场价:45.0元
  • ¥ 199.0元
  • 市场价:199.0元
  • ¥ 39.0元
  • 市场价:39.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: