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: Sun, 25 Nov 2007

view this page in

localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconv — Ανακτείστε πληροφορίες για το σχηματισμό αριθμών

Περιγραφή

array localeconv ( void )

Επιστρέφει έναν associative πίνακα, που περιέχει τοπικές πληροφορίες για το σχηματισμό αριθμών και νομισματικών ποσοτήτων.

Η συνάρτηση localeconv() επιστρέφει δεδομένα που βασίζονται στο τρέχων locale όπως αυτά ορίζονται από τη συνάρτηση setlocale(). Ο πίνακας, που επιστρέφεται, περιέχει τα ακόλουθα πεδία:

Στοιχείο πίνακα Περιγραφή
decimal_point Χαρακτήρας δεκαδικού σημείου
thousands_sep Χαρακτήρας διάκρισης των χιλιάδων
grouping Πίνακας που περιέχει τα αριθμητικά groupings
int_curr_symbol Διεθνές σύμβολο νομίσματος (π.χ. USD)
currency_symbol Τοπικό σύμβολο νομίσματος (π.χ. $)
mon_decimal_point Χαρακτήρας δεκαδικού σημείου για νομίσματα
mon_thousands_sep Χαρακτήρας διάκρισης χιλιάδων για νομίσματα
mon_grouping Πίνακας που περιέχει τα νομισματικά groupings
positive_sign Σύμβολο για θετικές τιμές
negative_sign Σύμβολο για αρνητικές τιμές
int_frac_digits Διεθνή κλασματικά ψηφία
frac_digits Τοπικά κλασματικά ψηφία
p_cs_precedes Είναι TRUE εάν το currency_symbol προηγείται μίας θετικής τιμής, ενώ είναι FALSE εάν έπεται μιας.
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
  • Παρενθέσεις περιβάλλουν το quantity και urrency_symbol
  • 1
  • Το sign string προηγείται του quantity και currency_symbol
  • 2
  • Το sign string έπεται του quantity και currency_symbol
  • 3
  • Το sign string πpοηγείται άμεσα του currency_symbol
  • 4
  • Το sign string έπεται άμεσα του currency_symbol
n_sign_posn
  • 0
  • Παρενθέσεις περιβάλλουν το quantity και currency_symbol
  • 1
  • Το sign string προηγείται του quantity και currency_symbol
  • 2
  • Το sign string έπεται του quantity και currency_symbol
  • 3
  • Το sign string προηγείται άμεσα του currency_symbol
  • 4
  • Το sign string έπεται άμεσα του currency_symbol

Τα πεδία grouping περιέχουν πίνακες που ορίζουν τον τρόπο με τον οποίο θα πρέπει να ομαδοποιούνται οι αριθμοί. Για παράδειγμα, το πεδίο grouping για το en_US locale, πρέπει να περιέχει έναν πίνακα δύο στοιχείων 2 item με τις τιμές 3 και 3. Όσο μεγαλύτερος είναι ο δείκτης σε έναν πίνακα τόσο μεγαλύτερη είναι η ομαδοποίηση στα αριστερά αυτού. Εάν ένα στοιχείο πίνακα είναι ίσο με CHAR_MAX, δεν επιτρέπεται άλλη ομαδοποίηση. Εάν ένα στοιχείο πίνακα είναι ίσο με 0, θα πρέπει να χρησιμοποιηθεί το προηγούμενο από αυτό στοιχείο.

Example#1 Παράδειγμα χρήσης της localeconv()

<?php
setlocale
(LC_ALL"en_US");

$locale_info localeconv();

echo 
"<PRE>\n";
echo 
"--------------------------------------------\n";
echo 
"  Monetary information for current locale:  \n";
echo 
"--------------------------------------------\n\n";

echo 
"int_curr_symbol:   {$locale_info["int_curr_symbol"]}\n";
echo 
"currency_symbol:   {$locale_info["currency_symbol"]}\n";
echo 
"mon_decimal_point: {$locale_info["mon_decimal_point"]}\n";
echo 
"mon_thousands_sep: {$locale_info["mon_thousands_sep"]}\n";
echo 
"positive_sign:     {$locale_info["positive_sign"]}\n";
echo 
"negative_sign:     {$locale_info["negative_sign"]}\n";
echo 
"int_frac_digits:   {$locale_info["int_frac_digits"]}\n";
echo 
"frac_digits:       {$locale_info["frac_digits"]}\n";
echo 
"p_cs_precedes:     {$locale_info["p_cs_precedes"]}\n";
echo 
"p_sep_by_space:    {$locale_info["p_sep_by_space"]}\n";
echo 
"n_cs_precedes:     {$locale_info["n_cs_precedes"]}\n";
echo 
"n_sep_by_space:    {$locale_info["n_sep_by_space"]}\n";
echo 
"p_sign_posn:       {$locale_info["p_sign_posn"]}\n";
echo 
"n_sign_posn:       {$locale_info["n_sign_posn"]}\n";
echo 
"</PRE>\n";
?>

Η σταθερά CHAR_MAX χρησιμοποιείται και για την προαναφερθείσα χρήση.

Ανατρέξτε επίσης στη setlocale().



add a note add a note User Contributed Notes
localeconv
PixEye dot DELETE at bigfoot dot com
24-Nov-2007 01: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
22-Jul-2001 07: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: Sun, 25 Nov 2007
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites