PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ltrim> <levenshtein
Last updated: Fri, 27 Jun 2008

view this page in

localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconv — Връща информация за формата на числата

Описание

array localeconv ( void )

Връща асоциативен масив, съдържащ информация за числовите и парични формат за текущия локал.

Връщани стойности

localeconv() връща данни, на базата на текущия локал, установени от функция setlocale(). Асоциативният масив, който се връща, съдържа следните елементи:

Елемент на масива Описание
decimal_point Знак за десетична запетая
thousands_sep Разделител за хиляди
grouping Масив съдържащ групирания на цифри
int_curr_symbol Международно обозначение на валута (например USD)
currency_symbol Национално обозначение на валута (например $)
mon_decimal_point Знак за десетична точка в паричен формат
mon_thousands_sep Разделител на групи в паричен формат
mon_grouping Масив, съдържащ количеството цифри в групи в паричен формат
positive_sign Знак за положителни стойности
negative_sign Знак за отрицателни стойности
int_frac_digits Брой на разрядите след десетичната запетая (международно)
frac_digits Брой на разрядите след десетичната запетая (национално)
p_cs_precedes Връща TRUE ако currency_symbol се записва преди положителна стойност, иначе връща FALSE if it succeeds one
p_sep_by_space Връща TRUE ако currency_symbol е отделено от положителна стойност с интервал, иначе връща FALSE
n_cs_precedes Връща TRUE ако currency_symbol се записва преди отрицателната стойност, иначе връща FALSE
n_sep_by_space Връща TRUE ако currency_symbol е отделено от отрицателна стойност с интервал, иначе връща FALSE
p_sign_posn
  • 0 - Числото и currency_symbol са заградено в скоби
  • 1 - Знакът е записан преди числото и currency_symbol
  • 2 - Знакът е записан след числото и currency_symbol
  • 3 - Знакът е записан точно преди числото и currency_symbol
  • 4 - Знакът е записан точно след числото и currency_symbol
n_sign_posn
  • 0 - Числото и currency_symbol са заградено в скоби
  • 1 - Знакът е записан преди числото и currency_symbol
  • 2 - Знакът е записан след числото и currency_symbol
  • 3 - Знакът е записан точно преди числото и currency_symbol
  • 4 - Знакът е записан точно след числото и currency_symbol

Елементите p_sign_posn и n_sign_posn съдържат низа на опциите за форматиране. Всяко число отговаря на съответното условие, посочено по-горе.

Полетата за групиране съдържат масиви, които определят начина, по който се групират числата. Например, полето за групиране в паричен формат за локал nl_NL (в UTF-8 кодиране и знак за евро) би съдържало масив от 2 елемента със стойности 3 и 3. Ако елементът на масива е равен на CHAR_MAX, групирането спира. Ако елементът на масива е равен на 0, ще бъде използван предишния елемент.

Примери

Example #1 Пример за localeconv()

<?php
if (false !== setlocale(LC_ALL'nl_NL.UTF-8@euro')) {
    
$locale_info localeconv();
    
print_r($locale_info);
}
?>

Примерът по-горе ще изведе:

Array
(
    [decimal_point] => .
    [thousands_sep] =>
    [int_curr_symbol] => EUR
    [currency_symbol] => €
    [mon_decimal_point] => ,
    [mon_thousands_sep] =>
    [positive_sign] =>
    [negative_sign] => -
    [int_frac_digits] => 2
    [frac_digits] => 2
    [p_cs_precedes] => 1
    [p_sep_by_space] => 1
    [n_cs_precedes] => 1
    [n_sep_by_space] => 1
    [p_sign_posn] => 1
    [n_sign_posn] => 2
    [grouping] => Array
        (
        )

    [mon_grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

)

Вж. също



add a note add a note User Contributed Notes
localeconv
PixEye dot DELETE at bigfoot dot com
24-Nov-2007 10:15
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(' ', '&nbsp;', $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&nbsp;!]";
    }

   
// 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(' ', '&nbsp;', $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&nbsp;!]";
    }
    if (
$isMoney) return $m; else return $n;
}

$number = -12345.12345;
echo
'<div>'.displayLocales($number, FALSE)."</div>\n";
echo
'<div>'.displayLocales($number, TRUE)."</div>\n";
?>
verdy_p at wanadoo dot fr
23-Jul-2001 04:13
The C99 standard modified slightly the definition of the international currency symbol, which is now 4 characters long instead of 3 in previous definitions. The fourth character will most often be an ASCII space, but its effective value is the locale-specific spacing character used for numeric grouping (i.e. the one refered by [sep_by_space] and [grouping])...

ltrim> <levenshtein
Last updated: Fri, 27 Jun 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites