为什么printf空间填充只允许一个空格?

时间:2013-05-08 08:30:47

标签: php printf padding

这是我的代码:

<?php
$str1 = "Hello";
printf("[%99s]",$str1);
?>

我希望它输出94个空格作为填充以满足最小长度。为什么它只在字符串的右边输出1个空格?

2 个答案:

答案 0 :(得分:0)

如果您输出到网页,HTML不会看到空格(如果您检查源代码,则可能存在94个空格)。您必须使用'&nbsp;'填充。

请改为尝试:

echo str_replace(' ', '&nbsp;', sprintf("[%-99s]\n", $str1));

答案 1 :(得分:0)

您的代码会添加正确的空格量。您的问题很可能只是在浏览器中查看它的表示而不是源代码。在HTML中,多个空格将合并为一个。

在浏览器源代码中查看输出或使用:

<pre>
<?php
$str1 = "Hello";
printf("[%99s]",$str1);
?>
</pre>