PHP中特殊HTML元素的转换

PHP项目开发过程中,经常需要对一些特殊字符进行处理,否则这些字符可能无法按输出或输出乱码。下面对HTML标记中的一些常用特殊字符进行转换。
q & 转换为 &
q " 转换为 "
q ' 转换为 '
q < 转换为 &lt;
q > 转换为 &gt;


其中,“&”为HTML元素,“&amp;”为显示的字符串。例如,若想在页面正常输出如下代码:
<a href='http://www.mingrisoft.com'>明日科技</a>
则需要在HTML代码中输入:“&lt; a href=&#039;http://www.mingrisoft.com&#039;&gt;明日科技&lt;/a&gt;”,否则,将不能按原义输出。
PHP提供了下面的函数来自动转换为HTML元素。
1.htmlspecialchars()函数
该函数可以将某些特定的字符转换成在HTML中的显示方式。语法如下:
string htmlspecialchars(string str[,int quote_style[,string charset]]);
该函数将特殊字符转成HTML的字符串格式( &....;)。该函数只转换上面列出5种特殊字符。
示例:
使用htmlspecialchars()函数将留言中特殊字符转成HTML的字符串格式,程序代码如下:
<?php
$word="&lt;html><head><title><快乐豆吧留言>:</title&gt;</head></html>八月-中秋-不送礼,发条短信£祝福£你,&健康快乐&长伴你,¤好运¤和你不分离,还有让我告诉你,$财神¥已经跟随你。";
echo htmlspecialchars("$word");
?>
本示例的运行结果:<html><head><title><快乐豆吧留言>:</title></head></html>八月-中秋-不送礼,发条短信£祝福£你,&健康快乐&长伴你,¤好运¤和你不分离,还有让我告诉你,$财神¥已经跟随你。
注意:因为在源代码中加入了htmlspecialchars()函数,所以在留言信息中代码没有被解释执行。
2.htmlentities()函数
该函数用于把所有的HTML元素转换为显示字符串。语法如下:
string htmlentities(string str[,int quote_style[,string charset]]);
3.html_entity_decode()函数
该函数用于把显示字符串转化为HTML元素。语法如下:
string html_entity_decode(string str[,int quote_style[,string charset]]);
str:表示原始字符串。
quote_style:可选参数,取值范围为如下:
q ENT_COMPAT:只转换“&、"、<、>”4种符号。
q ENT_QUOTES:只转换“&、'、"、<、>”5种符号。
q ENT_NOQ UOTES:只转换“&、<、>”3种符号。
charset:指定了在转换过程中应用的字符集。
PHP 4.0及以上版本所支持的字符集参数如表1所示。
表1 PHP 4.0及以上版本所支持的字符集参数
字 符 集
别 名
说 明
ISO-8859-1
ISO-8859-1
西欧字符集
ISO-8859-15
ISO-8859-15
西欧字符集扩展
UTF-8
ASCII字符集
KOI8-R
Koi8-ru,koi8r
俄罗斯
cp1252
Windows-1252,1252
西欧字符集,Windows系统默认
GB2312
936
简体中文,国际标准字符集
Shift-JIS
SJIS,932
日文
EUCJP
EUCJP
日文
示例:
使用htmlentities()函数得到一个HTML语句的显示字符串,然后再使用html_entity_decode()函数重新把显示字符串转回HTML元素。程序代码如下:
<?php
$word="<font color='#886699'>总有许多许多话,想说给你听</font>";
echo htmlentities($word,ENT_COMPAT,"GB2312")."<br>";
echo html_entity_decode($word);
?>
本示例的运行结果如下:
<font color='#886699'>总有许多许多话,想说给你听</font>
总有许多许多话,想说给你听

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值