php.sprintf

格式值

字符串 s

1
2
3

$format = "%s";
echo sprintf($format, 'hello'); // hello

十进制数字 d

1
2
3

$format = "%d";
echo sprintf($format, 2); // 2

浮点数 f / F

1
2
$format = "%f";
echo sprintf($format, 2); // 2.000000
  • f 本地设置
  • F 非本地设置

附加格式值

必须放在%与格式值字母之间,例如 %.2f

在正数前面加上 + 标记

1
2
3
4
5
6
7
$format = '%+d';
echo sprintf($format, 2); // +2
echo sprintf($format, -2); // -2

$format = '%d';
echo sprintf($format, 2); // 2
echo sprintf($format, -2); // -2

小于最小宽度时填充 ‘x

'x 单个单引号开头,’x’可以是任意单个字符
必须和宽度指示器一起使用。

1
2
3
4
5
$format = "%'x5s";  // 当宽度小于5时用x填充为5位
echo sprintf($format, 'a'); // 'xxxxa'

$format = "%'03d";
echo sprintf($format, 2); // '002' 最小宽度为3,小于3位时,用0补位

后置填充

1
2
3
4
5
$format = "%'x5d";  // 默认前置填充
echo sprintf($format, 2); // xxxx2

$format = "%'x-5d"; // 后置填充
echo sprintf($format, 2); // 2xxxx

宽度指示器 [0-9]

规定变量值的最小宽度,宽度不够时,用空格补位

1
2
$format = '%3d';
echo sprintf($format, 2); // ' 2';

小数位数或最大字符串长度 .[0-9]

1
2
3
4
5
$format = '%.2f';
echo sprintf($format, 3);

$format = '%.2s';
echo sprintf($format, '123456'); // '12' 最大宽度为2,从左向右取两位