使用 php sprintf 格式化字符串
1。 sprintf简介
在PHP中,有时我们需要将一些数据类型格式化为字符串并返回。这是 sprintf() 可用的时候。 sprintf() 函数将格式化字符串写入变量而不是显示它们。
sprintf()函数的语法如下:
string sprintf ( string $format [, mixed $args [, mixed $... ]] )
第一个$format参数是一个格式字符串,可以包含多个占位符(%),后面的$args用来替换这些占位符,得到最终的字符串。 sprintf() 会连续替换占位符,多余的参数将被忽略,缺少的参数将被替换为空字符串。
2。占位符
sprintf() 支持多个占位符,可以控制输出格式。以下是一些常用的占位符:
- %s:字符串类型
- %d:整数类型
- %f:浮点类型
- %c:字符类型
- %x:十六进制整数类型
- %%:百分号
以下代码展示了如何使用此占位符:
$str = 'Hello';
$int = 123;
$float = 3.1415926;
$char = 'A';
$hex = 255;
printf("%s, world!
", $str); // Hello, world!
printf("%d bottles of beer
", $int); // 123 bottles of beer
printf("%.2f
", $float); // 3.14
printf("%c
", $char); // A
printf("%x
", $hex); // ff
printf("%%
"); // %
3。输出格式
sprintf()还支持一些输出格式的占位符,例如:%02d表示输出为整数时,如果小于两位数,则在前面补0。以下是一些常用的格式输出占位符:
- %d:整数类型
- %x:十六进制整数类型
- %b:二进制整数类型
- %o:八进制整数类型
- %s:字符串类型
- %c:字符类型
- %f:浮点类型
- %e:用科学记数法表示的浮点数
- %g:根据 的值使用%f或%e
以下代码展示了如何使用此格式输出占位符:
$int = 10;
$hex = 16;
$bin = 0b1010;
$oct = 012;
printf("%02d
", $int); // 10
printf("%02d
", $hex); // 16
printf("%02d
", $bin); // 10
printf("%02d
", $oct); // 12
printf("%03d
", $int); // 010
printf("%03d
", $hex); // 016
printf("%03d
", $bin); // 010
printf("%03d
", $oct); // 012
printf("%5s
", 'hello'); // hello
printf("%5s
", 'world'); // world
printf("%'#5s
", 'hello');// ###hello
printf("%f
", 1.2345678);// 1.234568
printf("%.2f
", 1.2345678); // 1.23
4。示例
以下是一个完整的示例,展示了如何组合多个占位符以及如何格式化表输出的输出占位符:
$table = array(
array('Name', 'Age', 'Gender'),
array('Tom', 18, 'Male'),
array('Jerry', 19, 'Female'),
array('Mike', 20, 'Male'),
);
foreach ($table as $row) {
printf("|%10s|%10s|%10s|\n", $row[0], $row[1], $row[2]);
}
该代码的输出如下:
| Name| Age| Gender|
| Tom| 18| Male|
| Jerry| 19| Female|
| Mike| 20| Male|
5。总结
sprintf()是一个非常有用的函数,可以帮助我们将不同的数据格式转换为字符串。在实际开发中,我们经常需要将数据格式化成表、日志等,而sprintf()为我们提供了一种简单高效的方法来解决这个问题。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
上一篇:PHP的join()函数使用详解 下一篇:如何使用 PHP 确定变量的类型
code前端网