在PHP money_format()的输出中删除美元符号后的空格

时间:2011-09-09 18:00:15

标签: php money-format

我用

money_format('%(#15.2n',$money)

输出类似

的内容
  

$ 500.00

有没有办法删除美元符号和500之间的空格?

6 个答案:

答案 0 :(得分:8)

money_format [docs] 甚至可能无法在某些平台上运行。使用number_format [docs] 会更可靠:

echo '$' . number_format($money, 2); // '$12.44'

如果您希望将其填充到一定数量的空格,但在数字前面加上美元符号,您还可以使用sprintf [docs] :< / p>

echo printf("%15s", '$' . number_format($money, 2)); // '         $12.44'

答案 1 :(得分:1)

使用str_replace(“”,“”,$ string)

答案 2 :(得分:1)

删除额外的空格非常简单。您正在使用的代码实际上是添加填充。 money_format文档中的一个示例:

  

//美国国家格式,使用()表示负数
  //左边精度为10位数   setlocale(LC_MONETARY,'en_US');
  echo money_format('%(#10n',$ number)。“\ n”;
  // ($ 1,234.57)

您示例中的#15是罪魁祸首。如果您要查看pre标记内的引用,您实际上会看到数字填充到15个空格。

 $                500.00 

如果你删除了......

money_format('%(.2n',$money)

你会得到:

$500.00

您也可以删除(以不在括号中包含负数(替代方案是开头的-)。如果你真的想要你在预期结果中引用的单个空格,你可以尝试:

money_format('%(#4.2n',$money)

答案 3 :(得分:0)

$str = preg_replace('/\s\s+/', ' ', $str);

答案 4 :(得分:0)

这就是我使用的:

function my_money_format($number){
    return str_replace(" ", "",money_format('%+#10n', $number));
}

答案 5 :(得分:-2)

echo money_format('$%i', $number)