PHP Doku:: Ermittelt die Formatierungsinformationen für Zahlen - function.localeconv.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzTextverarbeitungZeichenkettenString-Funktionenlocaleconv

Ein Service von Reinhard Neidl - Webprogrammierung.

String-Funktionen

<<levenshtein

ltrim>>

localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconvErmittelt die Formatierungsinformationen für Zahlen

Beschreibung

array localeconv ( void )

Gibt ein assoziatives Array zurück, das die lokalisierten Informationen zur Formatierung von Zahlen und Geldbeträgen enthält.

Rückgabewerte

localeconv() gibt Daten basierend auf den aktuellen Locale-Einstellungen, wie sie mittels setlocale() festgelegt werden können, zurück. Das assoziative Array, das zurückgegeben wird, enthält folgende Felder:
Arrayelement Beschreibung
decimal_point Dezimaltrennzeichen
thousands_sep Tausendertrennzeichen
grouping Array mit numerischen Gruppierungen
int_curr_symbol Internationales Währungssymbol (i.e. USD)
currency_symbol Lokales Währungssymbol (i.e. $)
mon_decimal_point Dezimaltrennzeichen bei Geldbeträgen
mon_thousands_sep Tausendertrennzeichen bei Geldbeträgen
mon_grouping Array mit Geldbetragsgruppierungen
positive_sign Vorzeichen für positive Werte
negative_sign Vorzeichen für negative WerteS
int_frac_digits Internationale Dezimalbrüche
frac_digits Lokale Dezimalbrüche
p_cs_precedes Ist TRUE, wenn das Währungssymbol einem positiver Wert voransteht, oder FALSE, wenn es einem positiven Wert folgt.
p_sep_by_space Ist TRUE, wenn ein Leerzeichen das Währungssymbol von einem positiven Wert trennt, ansonsten FALSE.
n_cs_precedes Ist TRUE, wenn das Währungssymbol einem negativer Wert voransteht, oder FALSE, wenn es einem negativen Wert folgt.
n_sep_by_space Ist TRUE, wenn ein Leerzeichen das Währungssymbol von einem negativen Wert trennt, ansonsten FALSE.
p_sign_posn
  • 0 - Klammern um Menge und Währungssymbol
  • 1 - Das Vorzeichen steht vor Menge und Währungssymbol
  • 2 - Das Vorzeichen steht hinter Menge und Währungssymbol
  • 3 - Das Vorzeichen steht direkt vor Menge und Währungssymbol
  • 4 - Das Vorzeichen steht direkt hinter Menge und Währungssymbol
n_sign_posn
  • 0 - Klammern um Menge und Währungssymbol
  • 1 - Das Vorzeichen steht vor Menge und Währungssymbol
  • 2 - Das Vorzeichen steht hinter Menge und Währungssymbol
  • 3 - Das Vorzeichen steht direkt vor Menge und Währungssymbol
  • 4 - Das Vorzeichen steht direkt hinter Menge und Währungssymbol

p_sign_posn und n_sign_posn enthalten einen String mit Formatierungsinformationen. Jeder Wert repräsentiert eine der oben aufgeführten Bedingungen.

Die Gruppierungsfelder enthalten Arrays, die die Art und Weise definieren, in der Zahlen gruppiert werden sollten. Beispielsweise würde das Gruppierungsfeld für Geldbeträge unter einer nl_NL-Locale (im UTF-8-Modus mit dem Euro-Zeichen) ein Array mit zwei Einträgen mit den Werten 3 und 3 enthalten. Je höher der Index im Array, desto weiter links wird gruppiert. Wenn ein Arrayelement CHAR_MAX entspricht, wird keine weitere Gruppierung angewendet. Ist ein Arrayelement gleich 0, sollte das vorangegangene Element verwendet werden.

Beispiele

Beispiel #1 localeconv()-Beispiel

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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
        )

)

Siehe auch


2 BenutzerBeiträge:
- Beiträge aktualisieren...
PixEye dot DELETE at bigfoot dot com
24.11.2007 22: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.07.2001 4: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])...



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)