PHP sprintf Space Padding

时间:2014-06-20 23:05:22

标签: php padding space

我的代码中有以下行,它以6个字符显示我的输出,带有前导零。

$formatted_value = sprintf("%06d", $phpPartHrsMls);

我想用空格替换前导零。尝试过通过搜索本网站和其他网站找到的所有例子,但无法弄明白。

以下是我尝试过的一些内容。

$formatted_value = sprintf("%6s", $phpPartHrsMls);

$formatted_value = printf("[%6s]\n",    $phpPartHrsMls); // right-justification with spaces

感谢您的帮助!!

5 个答案:

答案 0 :(得分:7)

在浏览器中,空格将始终折叠。

尝试:

<pre><?php echo $formatted_value; ?></pre>

如果您对此感到满意,请查看CSS white-space:pre-wrap - 一个非常有用的属性!

答案 1 :(得分:2)

这将左侧与空格对齐:

$formatted_value = sprintf("%6s", $phpPartHrsMls);
echo "<pre>" . $formatted_value . "</pre>";

这会将右边与空格对齐:

$formatted_value = sprintf("%-6s", $phpPartHrsMls);
echo "<pre>" . $formatted_value . "</pre>";

如果您只想打印六位数字,要打印其他数字:

$formatted_value = sprintf("%-6.6s", $phpPartHrsMls);
echo "<pre>" . $formatted_value . "</pre>";

还有一件事,浏览器通常会忽略这些空格,因此最好将输出包装在<pre>标记中。

答案 2 :(得分:0)

您使用%06d请尝试更大的数字。

您的代码可以在下面尝试:

printf('%20.2f', $phpPartHrsMls);

您可以在html上使用&nbsp;空格。

答案 3 :(得分:0)

将前导零更改为前导空格:

$formatted_value = sprintf("%' 6s", $phpPartHrsMls);

答案 4 :(得分:0)

试试str_pad

str_pad($phpPartHrsMls, 6, " ", STR_PAD_LEFT);