格式化字符串

  • 2020-09-22 10:04:35
  • 阅读次数:
  • 作者:盈岚科技小编
  • 来源:http://www.lyjtt.cn

做网站中,通常,在使用用户输入的字符串(通常来自HTML表单界面)之前,必须对它们进行整理。整理字符串的第一步是清理字符串中多余的空格。虽然这一步操作不是必需的,但如果要将字符串存入一个文件或数据库中,或者将它和别的字符串进行比较,这就是非常有用的。为了实现该功能,PHP提供了3个非常有用的函数。在脚本的开始处,当给表单输入变量定义简短变量名称时,可以使用trim()函数来整理用户输入的数据,如下所示:

$name=trim($name);

$email=trim($email);

$feedback=trim($feedback);

trim()函数可以除去字符串开始位置和结束位置的空格,并将结果字符串返回。默认情况下,除去的字符是换行符和回车符(\n和\r)、水平和垂直制表符(\t和\v)、字符串结束符(\0)和空格。除了这个默认的过滤字符列表外,也可以在该函数的第二个参数中提供要过滤的特殊字符。根据特定用途,可能会希望使用ltrim()函数或rtrim()函数。

这两个函数的功能都类似于trim()函数,它们都以需要处理的字符串作为输入参数,然后返回经过格式化的字符串。这3个函数的不同之处在于trim()将除去整个字符串前后的空格,而ltrim()只从字符串的开始处(左边)除去空格,rtrim()只从字符串的结束处(右边)除去空格。PHP具有一系列可供使用的函数来重新格式化字符串,这些函数的工作方式是各不相同的。

•HTML格式化

nl2br()函数将字符串作为输入参数,用HTML中的<br/>标记代替字符串中的换行符。这对于将一个长字符串显示在浏览器中是非常有用的。例如,使用这个函数来格式化顾客反馈信息并将它返回到浏览器中:<p><? php echo nl2br($text); ?> </p>

提示:HTML将忽略纯空格,所以如果不使用nl2br()函数来过滤这个输出结果,那么它看上去就是单独的一行。   

•打印格式化

常用echo命令将字符串输出到浏览器。PHP也支持print()函数,它实现的功能与echo命令相同,但具有返回值,总是返回1。

使用函数printf()和sprintf(),还可以实现一些更复杂的格式。它们的工作方式基本相同,只是printf()函数是将一个格式化的字符串输出到浏览器中,而sprintf()函数是返回一个格式化了的字符串。

个函数的基本语法如下:

string sprintf (string format [, mixed args...])int printf (string format [, mixed args...])

传递给这两个函数的第一个参数都是字符串格式,它们使用格式代码而不是变量来描述输出字符串的基本形状。其他参数是用来替换格式字符串的变量。

【示例】在使用echo时,把要用的变量直接打印至该行中,如下所示:echo "总订单数量是:$total.";

要使用printf()函数得到相同的结果,应该使用如下语句:printf ("总订单数量是:%s.", $total);

格式化字符串中的%s是转换说明。它的意思是用一个字符串来代替。在这个例子中,它会被已解释成字符串的$total代替。如果保存在$total变量中的值是12.4,这两种方法都将它打印为12.4。

printf()函数的优点在于它可以使用更有用的转换说明来指定$total为一个浮点数,它的小数点后面应该有两位小数,如下所示:

printf ("总订单数量是:%.2f", $total);

经过这行代码的格式化处理,存储在$total中的12.4将打印为12.40。

可以在格式化字符串中使用多个转换说明。如果有n个转换说明,在格式化字符串后面就应该带有n个参数。每个转换说明都将按给出的顺序被一个重新格式化过的参数代替。

printf ("总订单数量是:%.2f (含运费%.2f) ",$total, $total-shipping);

在这里,第一个转换说明将使用变量$total,而第二个转换说明将使用变量$total_shipping。每一个转换说明都遵循同样的格式,如下所示:

%['padding-character][-][width]

[.precision]type

所有转换说明都以%开始。如果想打印一个“%”符号,必须使用“%%”。参数padding_character是可选的。它将被用来填充变量直至所指定的宽度。该参数的作用就像使用计算器那样在数字前面加零。默认的填充字符是一个空格,如果指定了一个空格或0,就不需要使用“'”作为前缀。对于任何其他填充字符,必须指定“'”作为前缀。字符“-”是可选的。它指明该域中的数据应该左对齐,而不是默认的右对齐。参数width告诉printf()函数在这里为将被替换的变量留下多少空间(按字符计算)。

参数precision表示必须是以一个小数点开始。它指明了小数点后面要显示的位数。

转换说明的最后一部分是一个类型码。其支持的所有类型码如下表所示。

56ef552da233ee418229299ce7df444e.jpg

当在类型转换代码中使用printf()函数时,参数的顺序并不一定要与转换说明中的顺序相同。

•字符串大小写

可以重新格式化字符串中的字母大小写。例如,如果电子邮件中的主题行字符串是以$subject开始,可以通过几个函数来改变它的大小写。这些函数的功能概要如下表所示。该表的第一列显示了函数名,第二列描述了它的功能,第三列显示了如何在字符串$subject中使用它,最后一列显示了该函数的返回值。

56ef552da233ee418229299ce7df444e.jpg

除了使用字符串函数来重新格式化一个可见的字符串之外,也可以使用其中的一些函数来重新格式化字符串,以便将其存入数据库。对于字符串来说,某些字符肯定是有效的,但是当将数据插入到数据库中时可能会引起一些问题,因为数据库会将这些字符解释成控制符。这些有问题的字符就是引号(单引和双引)、反斜杠(\)和NULL字符。

需要找到一种标记或是转义它们的办法。以便使像MySQL这样的数据库能够理解所表示的是有实际意义的特殊文本字符,而不是控制序列。为了将这些字符进行转义处理,可以在它们前面加一个反斜杠。例如,"(双引号)就变成\"(反斜杠双引号),\(反斜杠)就变成\\(反斜杠反斜杠)。这个规则对所有特殊字符都通用,所以如果在字符串中存在\\字符,就需要用\\\进行替换。PHP提供了两个专门用于转义字符串的函数。在将任何字符串写到数据库之前,如果PHP的默认配置还没有启用该功能,读者应该使用addSlashes()函数将它们重新格式化,例如:$feedback = addSlashes($feedback);

与许多其他字符串函数一样,addSlashes()函数需要一个字符串作为输入参数,经过该函数处理,将返回一个重新格式化后的字符串。

如果设置了PHP的配置参数magic_quotes_gpc,则PHP将自动添加或去除反斜杠。在PHP新版本的默认安装情况下,该指令是启用的。gpc表示GET、POST和cookie,是第一个字母的组合。这就意味着,来自这些方法或方式的变量将被自动包括在引号内。使用get_magic_quotes_gpc()函数,可以检查系统上的这个指令是否已经启用,如果来自这些方法的变量被自动引用在引号中,该函数将返回true。如果系统上该指令为启用的,在显示用户数据之前,必须调用stripslashes()函数;否则,这些反斜杠会被显示出来。





当前文章标题:格式化字符串

当前URL:http://www.lyjtt.cn/news/wzzz/3280.html

上一篇:读取Cookie和删除Cookie

下一篇:连接和分割字符串

网站建设、抖音推广、头条推广、微信朋友圈推广、快手推广专线:15368242187(微信同号)