摘要
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. ' '<'
5. '>' => '>'
htmlspecialchars_decode
htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符
说明
string htmlspecialchars_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ] )
此函数的作用和 htmlspecialchars() 刚好相反。它将特殊的HTML实体转换回普通字符。
被转换的实体有: &, " (没有设置 ENT_NOQUOTES 时), ' (设置了 ENT_QUOTES 时), < 以及>。
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") ]] )
$str="付杰博客";
echo htmlentities($str);
echo '
';
echo htmlspecialchars($str);
echo '
';
echo htmlspecialchars_decode($str);
echo '
';
echo html_entity_decode($str);
由于博主没有用数据库来存取,直接是用的网页来查看的,因此转义的地方看不出来,如果你是把存取数据库的话,你就不能按照以上代码来用,存的时候用htmlspecialchars或htmlentities;取出来的时候可以根据自身的情况来看是否解码;如果要解码就用htmlspecialchars_decod或html_entity_decode;
重要提示:
htmlspecialchars()和 htmlspecialchars_decode()配合使用;
htmlentities()和 html_entity_decode()配合使用;
常用特殊字符列表:
特殊字符
说明
对应字符实体
<
小于号
<
>
大于号
>
空格
&
和号
&
"
双引号
"
'
撇号
'
©
版权
©
®
注册商标
®