PHP中常用的字符串格式化函数总结
字符串的格式化就是将字符串处理为某种特定的格式。通常用户从表单中提交给服务器的数据都是字符串的形式,为了达到期望的输出效果,就需要按照一定的格式处理这些字符串后再去使用。经常见到的字符串格式化函数如下图所示: 注意:在PHP中提供的字符串函数处理的字符串,大部分都不是在原字符串上修改,而是返回一个格式化后的新字符串。 一、取出空格和字符串填补函数空格也是一个有效的字符,在字符串中也会占据一个位置。用户在表单输入数据时,经常在无意中会多输入一些无意义的空格。因此PHP脚本在接收到通过表单处理过来的数据时,首先处理的就是字符串中多余的空格,或者其他一些没有意义的符号。在PHP中可以通过ltrim()、rtrim()和trim()函数来完成这项工作。这三个函数的语法格式相同,但作用有所不同。他们的语法格式如下所示: 代码如下:
这三个函数分别用于从字符串的左、右和两端删除空白字符或其他预定义字符。处理后的结果都会以新字符串的形式返回,不会在原字符串上修改。其中第一个参数str是待处理的字符串,为必选项。第二个参数charlist是过滤字符串,用于指定希望去除的特殊符号,该参数为可选。如果不指定过滤字符串,默认情况下会去掉下列字符。
★”":空格 ★”0”:NULL ★”t”:制表符 ★”n”:新行 ★”r”:回车 此外还可以使用“..”符号指定需要去除的一个范围,例如“0..9”或“a..z”表示去掉ASCII码值中的数字和小字母。它们的使用代码如下所示: 代码如下: 不仅可以按需求过滤掉字符串中的内容,还可以使用str_pad()函数按需求对字符串进行填补。可以用于对一些敏感信息的保护,例如数据的对并排列等。其函数的原型如下所示: 代码如下:
该函数有4个参数,第一个参数指明要处理的字符串。第二个参数给定处理后字符串的长度,如果该值小于原始字符串的长度,则不进行任何操作。第三个参数指定填补时所用的字符串,它为可选参数,如果没有指定则默认使用空格填补。最后一个参数指定填补的方向,它有三个可选值:STR_PAD_BOTH、STR_PAD_LEFT和STR_PAD_RIGHT,分别代表在字符串两端、左和右进行填补。也是一个可选参数,如果没有指定,则默认值是STR_PAD_RIGHT。函数str_pad()的使用代码如下所示:
代码如下: 二、字符串大小写的转换在PHP中提供了4个字符串大小写的转换函数,它们都只有一个可选参数,即传入要进行转换的字符串。可以直接使用这些函数完成大小写转换的操作。函数strtoupper()用于将给定的字符串全部转换为大写字母;函数strtolower()用于将给定的字符串全部转换为小写字母;函数ucfirst()用于将给定的字符串中的首字母转换为大写,其余字符不变;函数ucwords()用于将给定的字符串中全部以空格分割的单词首字母转换为大写。下面的程序是这些函数的使用代码,如下所示: 代码如下: 代码如下: 三、和HTML标签相关的字符串格式化HTML的输入表单和URL上附加资源是用户将数据提交给服务器的途径,如果不能很好地处理,就有可能成为黑客攻击服务器的入口。例如,用户在发布文章时,在文章中如果包含一些HTML格式标记或JavaScript的页面转向等代码了,直接输出显示则一定会使用页面的布局发生改变。因为这些代码被发送到浏览器中,浏览器会按有效的代码去解释。所以在PHP脚本中,对用户提交的数据内容一定要先处理。在PHP中为我们提供了非常全面的HTML相关的字符串格式化函数,可以有效地控制HTML文本的输出。 ①函数nl2br()在浏览器中输出的字符串“ 代码如下: ”标记
/*输出以下两行结果
One line.Another line. */ ?> ②函数htmlspecialchars()如果不希望浏览器直接解析HTML标记,就需要将HTML标记中的特殊字符转换成HTML实体。例如,将“<”转换为“<”,将“>”转换为“>”。这样HTML标记浏览器就不会去解析,而是将HTML文本在浏览器中原样输出。PHP中提供的htmlspecialchars()函数就可以将一些预定义的字符串转换为HTML实体。此函数用在预防使用者提供的文字中包含了HTML的标记,像是布告栏或是访客留言板这方面的应用。以下是该函数可以转换的字符: ★“&”(和号)转换为“&”。 ★“””(双引号)转换为“"”。 ★“'”(单引号)转换为“'”。 ★“<”(小于)转换为“<”。 ★“>”(大于)转换为“>”。 该函数的原型如下: 代码如下:
该函数中第一个参数是带有HTML标记待处理的字符串。第二个参数用来决定引号的转换方式。默认值为ENT_COMPAT将只转换双引号,而保留单引号;ENT_QUOTES将同时转换这两种引号;而ENT_NOQUOTES将不对引号进行转换。第三个参数用于指定所处理字符串的字符集,默认的字符集是“ISO88511-1”。
代码如下:
WebServer: & 'Linux' & 'Apache'"; //将有HTML标记和单引号的字符串
echo htmlspecialchars($str,ENT_COMPAT); //转换HTML标记和转换双引号
echo " n"; echo htmlspecialchars($str,ENT_QUOTES); //转换HTML标记和转换两种引号 echo " n"; echo htmlspecialchars($str,ENT_NOQUOTES); //转换HTML标记和不对引号转换 echo " n"; ?> |