龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

PHP中常用的字符串格式化函数总结(3)

时间:2014-11-21 02:00来源:网络整理 作者:网络 点击:
分享到:
复制代码 代码如下: html body php $str = "BWebServer:/B 'Apache'"; //将有HTML标记和单引号的字符串 echo htmlspecialchars($str,ENT_COMPAT); //转换HTML标记和转换双引号 echo "

复制代码 代码如下:

<html>
<body>
<?php
$str = "<B>WebServer:</B> & 'Linux' & 'Apache'"; //将有HTML标记和单引号的字符串
echo htmlspecialchars($str,ENT_COMPAT); //转换HTML标记和转换双引号
echo "<br>\n";
echo htmlspecialchars($str,ENT_QUOTES); //转换HTML标记和转换两种引号
echo "<br>\n";
echo htmlspecialchars($str,ENT_NOQUOTES); //转换HTML标记和不对引号转换
echo "<br>\n";
?>
</body>
</html>

在浏览器中的输出结果

复制代码 代码如下:

<B>WebServer:</B> & ‘Linux' & ‘Apache'
<B>WebServer:</B> & ‘Linux' & ‘Apache'
<B>WebServer:</B> & ‘Linux' & ‘Apache'

如果在浏览器中查看源代码,会看到如下结果:
复制代码 代码如下:

<html>
<body>
<B>WebServer:</B>&'Linux'&'Apache'<br> //没有转换单引号
<B>WebServer:</B>&'Linux'&'Apache'<br>
<B>WebServer:</B>&'Linux'&'Apache' //没有转换单引号
</body>
</html>

在PHP中还提供了htmlentities()函数,可以将所有的非ASCII码字符转换为对应的实体代码。该函数与htmlspecialchars()函数的使用语法格式一致,该函数可以转义更多的HTML字符。下面的代码为htmlentities()函数的使用范例:

复制代码 代码如下:

<?php
$str = "一个'quote'是<b>bold</b>";
//输出&0qrave;»¸ö 'quote' ÊÇ <b> <:b>bold</b>
echo htmlentities($str);
//输出:一个'quote' 是 <b>bold</b>
echo htmlentities($str,ENT_QUOTES,gb2312);
?>

在处理表单中提交的数据时,不仅要通过前面介绍的函数将HTML的标记符号和一些特殊字符转换为HTML实体,还需要对引号进行处理。因为被提交的表单数据中的“'”、“””和“\”等字符前将自动加上一个斜线“\”。这是由于PHP配置文件php.ini中的选项magic_quotes_gpc在起作用,默认是打开的,如果不关闭它则要使用函数stripslashes()删除反斜线。如果不处理,将数据保存到数据库中时,有可能会被数据库误当成控制符号而引起错误。函数stripslashes()只有一个被处理字符串作为参数,返回处理后的字符串。通常使用htmlspecialchars()函数与stripslashes()函数复合的方式,联合处理表单中提交的数据。

函数stripslashes()的功能是去掉反斜线“\”,如果有连续两个反斜线,则只去掉一个。与之对应的是另一个函数addslashes(),正如函数名所暗示的,它将在“'”、“””、“\”和NULL字符等前增加必要的反斜线。

函数htmlspecialchars()是将函数HTML中的标记符号转换为对应的HTML实体,有时直接删除用户输入的HTML标签,也是非常有必要的。PHP中提供的strip_tags()函数默认就可以删除字符串中所有的HTML标签,也可以有选择性地删除一些HTML标记。如布告栏或是访客留言板,有这方面的应用是相当必要的。例如用户在论坛中发布文章时,可以预留一些可以改变字体大小、颜色、粗体和斜体等的HTML标记,而删除一些对页面布局有影响的HTML标记。函数strip_tags()的原型如下所示:

复制代码 代码如下:

string strip_tags(string str[,string allowable_tags]); //删除HTML的标签函数

该函数有两个参数,第一个参数提供了要处理的字符串,第二个参数是一个可选的HTML标签列表,放入该列表中的HTML标签将被保留,其他的则全部被删除。默认将所有HTML标签都删除。下面的程序为该函数的使用范围,如下所示:
复制代码 代码如下:

<?php
$str = "<font color='red' size=7>Linux</font> <i>Apache</i> <u>Mysql</u> <b>PHP</b>";
echo strip_tags($str); //删除了全部HTML标签,输出:Linux Apache Mysql PHP
echo strip_tags($str,"<font>"); //输出<font color='red' size=7>Linux</font>Apache Mysql PHP
echo strip_tags($str,"<b><u><i>"); //输出Linux <i>Apache</i> <u>Mysql</u> <b>PHP</b>
?>

四、其他字符串格式化函数

精彩图集

赞助商链接