Esempio n. 1
0
 /**
  * Alternative number_format() to accommodate multibyte decimals and thousands < PHP 5.4
  *
  * @param float $number
  * @param integer $places
  * @param string $decimals
  * @param string $thousands
  * @return string
  */
 protected static function _numberFormat($number, $places = 0, $decimals = '.', $thousands = ',')
 {
     if (!isset(self::$_numberFormatSupport)) {
         self::$_numberFormatSupport = version_compare(PHP_VERSION, '5.4.0', '>=');
     }
     if (self::$_numberFormatSupport) {
         return number_format($number, $places, $decimals, $thousands);
     }
     $number = number_format($number, $places, '.', '');
     $after = '';
     $foundDecimal = strpos($number, '.');
     if ($foundDecimal !== false) {
         $after = substr($number, $foundDecimal);
         $number = substr($number, 0, $foundDecimal);
     }
     while (($foundThousand = preg_replace('/(\\d+)(\\d\\d\\d)/', '\\1 \\2', $number)) != $number) {
         $number = $foundThousand;
     }
     $number .= $after;
     return strtr($number, array(' ' => $thousands, '.' => $decimals));
 }