note 79391 added to function.localeconv
| From: | PixEye dot DELETE at bigfoot dot com | Date: | Sat, 24 Nov 2007 21:15:27 +0000 |
| Subject: | note 79391 added to function.localeconv | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-132544@lists.php.net to get a copy of this message | ||
A function to get the right money & number formats:
<?php
function displayLocales($number, $isMoney, $lg='en_US.utf8') {
$ret = setLocale(LC_ALL, $lg);
setLocale(LC_TIME, 'Europe/Paris');
if ($ret===FALSE) {
echo "Language '$lg' is not supported by this system.\n";
return;
}
$LocaleConfig = localeConv();
forEach($LocaleConfig as $key => $val) $$key = $val;
// Sign specifications:
if ($number>0) {
$sign = $positive_sign;
$sign_posn = $p_sign_posn;
$sep_by_space = $p_sep_by_space;
$cs_precedes = $p_cs_precedes;
} else {
$sign = $negative_sign;
$sign_posn = $n_sign_posn;
$sep_by_space = $n_sep_by_space;
$cs_precedes = $n_cs_precedes;
}
// Number format:
$n = number_format(abs($number), $frac_digits,
$decimal_point, $thousands_sep);
$n = str_replace(' ', ' ', $n);
switch($sign_posn) {
case 0: $n = "($n)"; break;
case 1: $n = "$sign$n"; break;
case 2: $n = "$n$sign"; break;
case 3: $n = "$sign$n"; break;
case 4: $n = "$n$sign"; break;
default: $n = "$n [error sign_posn=$sign_posn !]";
}
// Currency format:
$m = number_format(abs($number), $frac_digits,
$mon_decimal_point, $mon_thousands_sep);
if ($sep_by_space) $space = ' '; else $space = '';
if ($cs_precedes) $m = "$currency_symbol$space$m";
else $m = "$m$space$currency_symbol";
$m = str_replace(' ', ' ', $m);
switch($sign_posn) {
case 0: $m = "($m)"; break;
case 1: $m = "$sign$m"; break;
case 2: $m = "$m$sign"; break;
case 3: $m = "$sign$m"; break;
case 4: $m = "$m$sign"; break;
default: $m = "$m [error sign_posn=$sign_posn !]";
}
if ($isMoney) return $m; else return $n;
}
$number = -12345.12345;
echo '<div>'.displayLocales($number, FALSE)."</div>\n";
echo '<div>'.displayLocales($number, TRUE)."</div>\n";
?>
----
Server IP: 217.174.196.197
Probable Submitter: 82.239.118.139
----
Manual Page -- http://www.php.net/manual/en/function.localeconv.php
Edit -- https://master.php.net/note/edit/79391
Del: integrated -- https://master.php.net/note/delete/79391/integrated
Del: useless -- https://master.php.net/note/delete/79391/useless
Del: bad code -- https://master.php.net/note/delete/79391/bad+code
Del: spam -- https://master.php.net/note/delete/79391/spam
Del: non-english -- https://master.php.net/note/delete/79391/non-english
Del: in docs -- https://master.php.net/note/delete/79391/in+docs
Del: other reasons-- https://master.php.net/note/delete/79391
Reject -- https://master.php.net/note/reject/79391
Search -- https://master.php.net/manage/user-notes.php