PHP 神奇的 sprintf 函数

sprintf

1.定义

sprintf() 函数将字符串进行各种类型的格式化。

2.语法

sprintf(format,arg1,arg2,arg++)
  • format:格式类型。
  • arg1,arg2,arg++:需要被查到被格式化字符串中的1到若干个参数。

format参照表

format 说明
%% 返回一个百分号 %
%b 二进制数
%c ASCII 值对应的字符
%d 包含正负号的十进制数(负数、0、正数)
%e 使用小写的科学计数法(例如 1.2e+2)
%E 使用大写的科学计数法(例如 1.2E+2)
%u 不包含正负号的十进制数(大于等于 0)
%f 浮点数(本地设置)
%F 浮点数(非本地设置)
%g 较短的 %e 和 %f
%G 较短的 %E 和 %f
%o 八进制数
%s 字符串
%x 十六进制数(小写字母)
%X 十六进制数(大写字母)

附加的格式值,必需放置在 % 和字母之间(例如 %.2f)。

  • +(在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记)
  • '(规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用 "x" 作为填充))
  • -(左调整变量值)
  • [0-9](规定变量值的最小宽度)
  • .[0-9](规定小数位数或最大字符串长度)

3.示例

3.1将1补位成为001。

$num = 1;
$spf = sprintf("%'03d", $num); // '后面是0表示用0补位,3是新字符串宽度
var_dump($spf); // string(3) "001"

3.2总宽度为3且只保留2位,并用[]括起来。

$str = '12345';
$spf = sprintf("[%3.2s]", $str); // 3表示宽度为3,宽度不足左边补位,若-3则右边补位;.2表示从左往右取两位。
var_dump($spf); // string(5) "[ 12]" 默认空格补位,空格补位再多只显示一个空格。

发表评论

电子邮件地址不会被公开。 必填项已用*标注