易百教程

PHP字符串格式填充输出

在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######

使用fF显示浮点数时,填充的行为会有所不同。