在PHP中,可以在左侧(默认情况下)或格式化参数的右侧添加字符以将输出填充到固定宽度。
要添加填充,请在类型说明符之前在转换规范中插入填充说明符。
填充说明符由零填充零或空格字符填充空格,后跟填充的字符数。printf()
根据需要添加尽可能多的零或空格,以使结果具有正确的宽度。
例如,以下代码显示各种数字,必要时使用前导零以确保结果始终为六位数字:
<?php
printf("%06d \n", 123 ); // 显示 "000123"
printf("%06d \n", 4567 ); // 显示 "004567"
printf("%06d \n", 123456 ); // 显示 "123456"
?>
执行上面示例代码,得到以下结果:
000123
004567
123456
填充说明符可以在需要时添加字符,它永远不会截断输出。
因此printf("%06d",12345678)
将输出显示为"12345678"
,而不是"345678"
。
此示例使用前导空格填充各种字符串,以确保它们是右对齐的:
<?php
printf("% 15s\n", "Hi" );
printf("% 15s\n", "Hello" );
printf("% 15s\n", "Hello, world!" );
?>
执行上面示例代码,得到以下结果:
Hi
Hello
Hello, world!
也可以省略零或空格,只需指定一个数字,在这种情况下printf()
填充空格。
但是不仅只限于零和空格,还可以使用其它的字符。
要使用自己的填充字符,请插入一个撇号('
),后跟字符而不是零或空格:
<?php
printf("%'#8s", "Hi" ); // 显示 "######Hi"
?>
执行上面示例代码,得到以下结果:
######Hi
要向右侧而不是左侧添加填充,请在填充字符和宽度说明符之间添加减号( -
):
<?php
printf("%'#-8s", "Hi" ); // 显示 "Hi######"
?>
执行上面示例代码,得到以下结果:
"Hi######
使用f
或F
显示浮点数时,填充的行为会有所不同。