Удаление пробела после знака доллара в выходных данных PHP money_format () - PullRequest
3 голосов
/ 09 сентября 2011

Я использую

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

выводит что-то вроде

$ 500,00

Есть ли способ убрать пробел между знаком доллара и 500?

Ответы [ 6 ]

8 голосов
/ 09 сентября 2011

money_format [ документы ] может даже не работать на некоторых платформах.Было бы более надежно использовать number_format [ документы ] :

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

Если вы хотите, чтобы он дополнялся определенным количеством пробелов, но сЗнак доллара непосредственно перед номером, вы также можете использовать sprintf [ документы ] :

echo printf("%15s", '$' . number_format($money, 2)); // '         $12.44'
1 голос
/ 30 декабря 2015

Удалить лишние пробелы довольно просто.Код, который вы используете, на самом деле добавляет заполнение.Пример из документации 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)
1 голос
/ 09 сентября 2011

использовать str_replace ("", "", $ string)

0 голосов
/ 25 февраля 2014
echo money_format('$%i', $number)
0 голосов
/ 11 декабря 2013

Вот что я использую:

function my_money_format($number){
    return str_replace(" ", "",money_format('%+#10n', $number));
}
0 голосов
/ 09 сентября 2011
$str = preg_replace('/\s\s+/', ' ', $str);
...