number_format + nbsp

Кром

Новичок
number_format + nbsp

Hе могу понять, почему при таком выражении
number_format($price, 2, ".", "& nbsp;")
число получается вида 1,234.56
а не 1 234.56?
 

Georgy

Guest
string number_format ( float number [, int decimals [, string dec_point [, string thousands_sep]]])

PHP:
<?php

    $number = 1234.56;

    // english notation (default)
    $english_format_number = number_format($number);
    // 1,234.56

    // French notation
    $nombre_format_francais = number_format($number, 2, ',', ' ');
    // 1 234,56

    $number = 1234.5678;

    // english notation without thousands seperator
    $english_format_number = number_format($number, 2, '.', '');
    // 1234.56

?>
MAN [m]number_format[/m]
 

Кром

Новичок
Georgy, спасибо, но это я уже прочитал. Мне нужно вставить неразрывный символ пробела, а функция вставляет запятую. Мне это непонятно.
 

Crazy

Developer
Фунция принимает в качестве thousands_sep только 1(один) символ. Используй:

PHP:
strtr(number_format(1234567.89 ....),',','&nbsp;')
 

Georgy

Guest
PHP:
$n = 127999.012;
$nf = number_format( $n, 3, '.', ' ' );
$nf = str_replace(' ', '&amp;nbsp;', $nf );
 

Кром

Новичок
Crazy, Georgy, спасибо, теперь все понятно.
Вобще, не лучшая реализация со сотроны разработчиков функции number_format. Сделали бы чтобы вставлять можно было что угодно.
 

Georgy

Guest
ну чтож поделать -- пиши разработчикам:)
 

Georgy

Guest
да ничего не мешает, но зачем изобретать велосипед?
 

Кром

Новичок
Crazy, твой пример, кстати, не подходит. :)
Запятая то - один символ, а ты его заменить хочешь на пять символов.

tony2001, можно и свою написать, когда встроенные реализованны так неудобно.
 

tony2001

TeaM PHPClub
>можно и свою написать, когда встроенные реализованны так неудобно.
до тебя никто не жаловался.
кстати, Георгий уже ответил тебе.
 

Кром

Новичок
>до тебя никто не жаловался.
Ты ее так защищаешь, как будто сам написал. Или боишся, что я потревожу разработчиков своими мелочнымми проблемами?
Будь объективен, Тони, от фунции не убудет, если она будет осуществлять замену на более чем один символ.
 

tony2001

TeaM PHPClub
>Ты ее так защищаешь, как будто сам написал.
я констатирую факт, а не защищаю.

>Или боишся, что я потревожу разработчиков своими мелочнымми проблемами?
проблемы нет, начнем с этого.

>Будь объективен, Тони, от фунции не убудет, если она будет осуществлять замену на более чем один символ.
однако, согласись, не все вокруг идиоты.
наверное, логика в такой работе функции тоже есть, верно?
опять же, это Open Source - сделай свой патч и пошли им, вместо того, чтобы сидеть и жаловаться как все хреново.
 

Честный

Guest
а не проще ли оставить пробел в number_format, и использовать либо <nobr> </nobr>, либо nowrap, если для ячейки в таблице.

"<nobr>".number_format($number, 2, ",", " ")."</nobr>"
 

Кром

Новичок
tony2001, если я предлагаю новую возможность для функции это не значит, что все кругом идиоты.
И почему же хреново? Хуже. Я не знаю Си. А это просто отвратительно...

Честный, да это тоже хороший выход.
 
Сверху