PHP sprintf 空格填充

问题描述 投票:0回答:5

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

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

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

以下是我尝试过的一些:

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

$formatted_value = printf("[%6s]\n",    $phpPartHrsMls); // right-justification with spaces
php padding space
5个回答
7
投票

在浏览器中,空格总是会被折叠。

尝试:

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

一旦您对此感到满意,请查看 CSS

white-space:pre-wrap
- 一个非常有用的属性!


5
投票

这会将左侧与空格对齐:

$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
投票

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

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

1
投票

尝试str_pad

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

0
投票

您使用

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

您的代码可以尝试如下所示:

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

并且您可以使用

&nbsp;
作为 html 上的空间。

© www.soinside.com 2019 - 2024. All rights reserved.