您的位置:首页 > 编程语言 > PHP开发

php项目中HTML特殊元素的转换

2013-12-24 14:46 204 查看
PHP项目开发过程中,经常需要对一些特殊字符进行处理,否则这些字符可能无法按输出或输出乱码。下面对HTML标记中的一些常用特殊字符进行转换。

q & 转换为 &

q " 转换为 "

q ' 转换为 '

q < 转换为 <

q > 转换为 >

其中,“&”为HTML元素,“&”为显示的字符串。例如,若想在页面正常输出如下代码:

<a href='http://www.mingrisoft.com'>明日科技</a>

则需要在HTML代码中输入:“< a href='http://www.mingrisoft.com'>明日科技</a>”,否则,将不能按原义输出。

PHP提供了下面的函数来自动转换为HTML元素。

1.htmlspecialchars()函数

该函数可以将某些特定的字符转换成在HTML中的显示方式。语法如下:

string htmlspecialchars(string str[,int quote_style[,string charset]]);

该函数将特殊字符转成HTML的字符串格式( &....;)。该函数只转换上面列出5种特殊字符。

示例:

使用htmlspecialchars()函数将留言中特殊字符转成HTML的字符串格式,程序代码如下:

<?php

$word="<html><head><title><快乐豆吧留言>:</title></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>

总有许多许多话,想说给你听
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: