在PHP中,在数字前添加空格

在PHP中,在数字前添加空格,php,string-formatting,padding,Php,String Formatting,Padding,如何在输入数字之前添加空格,以获得如下输出  9   10 100 我正在使用str_pad$k,3,,str_pad_左,但空格不起作用。我不需要前导零,但我需要空格。为此目的使用函数。为此目的使用函数。您可能正在寻找 但是,如果希望以HTML格式输出,则多个空格将转换为一个空格。在这种情况下,用作第三个参数 此外,如果您使用Times或Arial等字体,这将永远不会产生完全精确的结果,因为字符的宽度不同。为了获得完美的效果,您需要使用像Courier这样的单空格字体 无论

如何在输入数字之前添加空格,以获得如下输出

   9      
  10
 100
我正在使用str_pad$k,3,,str_pad_左,但空格不起作用。我不需要前导零,但我需要空格。

为此目的使用函数。

为此目的使用函数。

您可能正在寻找

但是,如果希望以HTML格式输出,则多个空格将转换为一个空格。在这种情况下,用作第三个参数

此外,如果您使用Times或Arial等字体,这将永远不会产生完全精确的结果,因为字符的宽度不同。为了获得完美的效果,您需要使用像Courier这样的单空格字体

无论如何,先检查@Mark Baker的答案。右对齐使用CSS的文本对齐:在大多数情况下,右对齐是最好的解决方案。

您可能正在寻找

但是,如果希望以HTML格式输出,则多个空格将转换为一个空格。在这种情况下,用作第三个参数

此外,如果您使用Times或Arial等字体,这将永远不会产生完全精确的结果,因为字符的宽度不同。为了获得完美的效果,您需要使用像Courier这样的单空格字体


无论如何,先检查@Mark Baker的答案。在大多数情况下,使用CSS的文本对齐:右对齐是最好的解决方案。

打印数字时:

printf("%5d\n", $number);
将5替换为所需的最小宽度。

打印数字时:

printf("%5d\n", $number);
将5替换为所需的最小空格宽度。

如果在web浏览器中显示结果,则应注意浏览器有将多个空格转换为单个空格的小趋势。若要检查代码是否正常工作,请使用浏览器的“查看源”选项,并计算实际源中的空间,而不是渲染显示中的空间


然后查看其他选项,例如使用或右对齐值。

如果在web浏览器中显示结果,那么您应该知道浏览器有将多个空格转换为单个空格的小趋势。若要检查代码是否正常工作,请使用浏览器的“查看源”选项,并计算实际源中的空间,而不是渲染显示中的空间


然后看看其他选择,例如使用或右对齐您的值。

这就是您要寻找的:

str_replace(" "," ",str_pad($number, 5,'   ', STR_PAD_LEFT));

grml,看看我的评论。我不知道为什么这里的nbsp:不见了

这就是您要找的:

str_replace(" "," ",str_pad($number, 5,'   ', STR_PAD_LEFT));

grml,看看我的评论。我不知道为什么这里的nbsp:不见了

你能补充一些关于你到底想要实现什么的细节和一个例子吗?9.10.100像这样打印你的str_pad里没有空间了。你能补充一些关于你到底想要实现什么的细节和一个例子吗?9 10 100这样打印你的打印板上没有空间了。+1可供css参考。这是一个表象问题,而不是PHP问题。CSS是处理这一问题的正确且简单的方法。提及CSS时+1。这是一个表象问题,而不是PHP问题。CSS是处理此问题的正确且简单的方法。meh@马克·贝克给出了正确的答案:用CSS实现。不过,至少你没有建议使用printf和family。但是我用@anu得到了&n1和n2。对不起,str_pad不是那样工作的。使用普通空格,然后替换它们:$string=str_replace,,$string;嗯@马克·贝克给出了正确的答案:用CSS实现。不过,至少你没有建议使用printf和family。但是我用@anu得到了&n1和n2。对不起,str_pad不是那样工作的。使用普通空格,然后替换它们:$string=str_replace,,$string;str_replace,str_pad$number,5',,str_pad_LEFT str_replace,str_pad$number,5',,str_pad_LEFT