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

search for in the

ltrim> <levenshtein
[edit] Last updated: Fri, 03 May 2013

view this page in

localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconvObtener información sobre el formato numérico

Descripción

array localeconv ( void )

Devuelve una matriz asociativa que contiene información de los formatos numérico y monetario, localizados.

Valores devueltos

localeconv() devuelve información basada en la localidad actual, tal y como haya sido definida mediante setlocale(). La matriz asociativa que devuelve contiene los siguientes campos:

Elemento de la matriz Descripción
decimal_point Caracter de punto decimal
thousands_sep Separador de miles
grouping Matriz que contiene agrupaciones numéricas
int_curr_symbol Símbolo internacional de moneda (i.e. USD)
currency_symbol Símbolo local de moneda (i.e. $)
mon_decimal_point Caracter de punto decimal monetario
mon_thousands_sep Separador de miles monetario
mon_grouping Matriz que contiene agrupaciones de moneda
positive_sign Signo para valores positivos
negative_sign Signo para valores negativos
int_frac_digits Dígitos fraccionarios internacionales
frac_digits Dígitos fraccionarios locales
p_cs_precedes TRUE si currency_symbol precede un valor positivo, FALSE si lo sucede
p_sep_by_space TRUE si un espacio separa currency_symbol de un valor positivo, FALSE de lo contrario
n_cs_precedes TRUE si currency_symbol precede un valor negativo, FALSE si lo sucede
n_sep_by_space TRUE si un espacio separa currency_symbol de un valor negativo, FALSE de lo contrario
p_sign_posn
  • 0 - Paréntesis rodean la cantidad y currency_symbol
  • 1 - La cadena de signo precede la cantidad y currency_symbol
  • 2 - La cadena de signo sucede la cantidad y currency_symbol
  • 3 - La cadena de signo precede inmediatamente currency_symbol
  • 4 - La cadena de signo sucede inmediatamente currency_symbol
n_sign_posn
  • 0 - Paréntesis rodean la cantidad y currency_symbol
  • 1 - La cadena de signo precede la cantidad y currency_symbol
  • 2 - La cadena de signo sucede la cantidad y currency_symbol
  • 3 - La cadena de signo precede inmediatamente currency_symbol
  • 4 - La cadena de signo sucede inmediatamente currency_symbol

Los valores de p_sign_posn y n_sign_posn contienen una cadena de opciones de formato. Cada número representa una de las condiciones listadas anteriormente.

Los campos de agrupamiento contienen matrices que definen el modo en que los números deben ser agrupados. Por ejemplo, el campo de agrupamiento monetario para la localidad nl_NL (en modo UTF-8 con el signo de euro), tendría una matriz de 2 elementos con los valores 3 y 3. Entre más alto sea el índice dentro de la matriz, lo más lejos hacia la izquierda se encuentra el agrupamiento. Si un elemento de la matriz es igual a CHAR_MAX, no se realiza ningún agrupamiento posterior. Si un elemento de la matriz es igual a 0, el elemento anterior deberá ser usado.

Ejemplos

Ejemplo #1 Ejemplo de localeconv()

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

El resultado del ejemplo sería:

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
        )

)

Ver también

  • setlocale() - Establecer la información de la configuración regional



add a note add a note User Contributed Notes localeconv - [2 notes]
up
1
verdy_p at wanadoo dot fr
11 years ago
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])...
up
0
PixEye dot DELETE at bigfoot dot com
5 years ago
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";
?>

 
show source | credits | sitemap | contact | advertising | mirror sites