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


<?php
$lamp = "lamp is composed of Linux 、Apache、MySQL and PHP";
echo strtolower($lamp); //输出:lamp is composed of linux、apache、mysql and php
echo strtoupper($lamp); //输出:LAMP IS CONPOSED OF LINUX、APACHE、MYSQL AND PHP
echo ucfirst($lamp); //输出:Lamp is composed of Linux 、Apache、MySQL and PHP
echo ucwords($lamp); //输出: Lamp Is Composed Of Linux 、Apache、MySQL And PHP
?>


这些函数只是按照他们说明描述的方式工作,要想确保一个字符串的首字母是大写字母,而其余的都是小写字母,就需要使用符合的方式。如下所示:

复制代码 代码如下:


<?php
$lamp = "lamp is composed of Linux 、Apache、MySQL and PHP";
echo ucfirst(strtolower($lamp)); //输出:Lamp is composed of linux、apache、mysql and php
?>

三、和HTML标签相关的字符串格式化

HTML的输入表单和URL上附加资源是用户将数据提交给服务器的途径,如果不能很好地处理,就有可能成为黑客攻击服务器的入口。例如,用户在发布文章时,在文章中如果包含一些HTML格式标记或JavaScript的页面转向等代码了,直接输出显示则一定会使用页面的布局发生改变。因为这些代码被发送到浏览器中,浏览器会按有效的代码去解释。所以在PHP脚本中,对用户提交的数据内容一定要先处理。在PHP中为我们提供了非常全面的HTML相关的字符串格式化函数,可以有效地控制HTML文本的输出。

①函数nl2br()

在浏览器中输出的字符串“<br>”标记换行,而很多人习惯使用“\n”作为换行符号,但浏览器中不识别这个字符串的换行符。即使有多行文本,在浏览器中显示时也只有这一行。nl2br()函数就是在字符串中的每个新行“\n”之前插入HTML换行符“<br/>”。该函数的使用如下所示:

复制代码 代码如下:


<?php
echo nl2br("One line.\nAnother line."); //在“\n”前加上“<br/>”标记
/*输出以下两行结果
One line.<br/>
Another line.
*/
?>

②函数htmlspecialchars()

如果不希望浏览器直接解析HTML标记,就需要将HTML标记中的特殊字符转换成HTML实体。例如,将“<”转换为“&lt;”,将“>”转换为“&gt;”。这样HTML标记浏览器就不会去解析,而是将HTML文本在浏览器中原样输出。PHP中提供的htmlspecialchars()函数就可以将一些预定义的字符串转换为HTML实体。此函数用在预防使用者提供的文字中包含了HTML的标记,像是布告栏或是访客留言板这方面的应用。以下是该函数可以转换的字符:

★“&”(和号)转换为“&amp;”。
★“””(双引号)转换为“&quot;”。
★“'”(单引号)转换为“&#039;”。
★“<”(小于)转换为“&lt;”。
★“>”(大于)转换为“&gt;”。

该函数的原型如下:

复制代码 代码如下:


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


该函数中第一个参数是带有HTML标记待处理的字符串。第二个参数用来决定引号的转换方式。默认值为ENT_COMPAT将只转换双引号,而保留单引号;ENT_QUOTES将同时转换这两种引号;而ENT_NOQUOTES将不对引号进行转换。第三个参数用于指定所处理字符串的字符集,默认的字符集是“ISO88511-1”。

复制代码 代码如下:


<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'


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

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f38e82ee9eba44a11a87041e0730a813.html