background image

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="<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 种符号。