Aktueller Standort: Startseite> Neueste Artikel> setLocale () Übung und Fähigkeiten zum Festlegen der Zahlenformatierung

setLocale () Übung und Fähigkeiten zum Festlegen der Zahlenformatierung

gitbox 2025-06-03

In der PHP -Entwicklung ist es häufig notwendig, Zahlen gemäß den Gewohnheiten verschiedener Regionen zu formatieren, insbesondere den Ausdrücken von Währungsbeträgen, Dezimalpunkten und Tausenden. PHP liefert die SetLocale () -Funktion, um Regionsinformationen festzulegen, wodurch die Anzeigemethode von Formaten wie Zahlen und Daten beeinflusst wird. In diesem Artikel wird detailliert erläutert, wie SetLocale () für SetNumber -Formate sowie verwandte Formatkontrolltechniken und praktische Beispiele verwendet werden.


1. Was ist SetLocale () ?

setLocale () ist eine Funktion, die in PHP verwendet wird, um die Gebietsschemaseinstellungen zu setzen. Es wirkt sich auf das Anzeigeformat von Zahlen, Währungen, Daten und Zeiten aus und ermöglicht es dem Programm, die Ausgabe gemäß den festgelegten regionalen Regeln zu formatieren.

Funktionsprototyp:

 setlocale(int $category, string|array $locale): string|false
  • $ Kategorie : Setzen Sie Kategorien wie LC_NUMERIC (numerisches Format), LC_Monetary (Währungsformat), LC_Time (Zeitformat) usw.

  • $ LOCAL : Geben Sie den Regionsprachcode an, wie zh_cn.utf-8 , en_us.utf-8 usw.


2. So setzen Sie das Zahlenformat mit SetLocale () fest

Standardmäßig kann das numerische Format von PHP den Spezifikationen in bestimmten Regionen nicht entsprechen, z. B. dem Standard -Dezimalpunkt in Englisch ist . und das tausendste Separator ist . Wenn Sie diese Formate anpassen möchten, müssen Sie SetLocale () verwenden.

Beispiel: Auf die chinesische Umgebung einstellen und das digitale Format anpassen

 <?php
// Setzen Sie das Zahlenformat auf die chinesische Umgebung
setlocale(LC_NUMERIC, 'zh_CN.UTF-8');

// Digitales Format testen
$number = 1234567.89;

// verwenden number_format() Formatnummern
echo number_format($number, 2, ',', ' ');
?>

Im obigen Beispiel:

  • Geben Sie die Umgebung für digitale Format durch setlocale () an.

  • Passen Sie den Dezimalpunkt und Tausende von Separatorzeichen mit number_format () an.

Es ist zu beachten, dass die Unterstützung von SetLocale (LC_Numeric, ...) in verschiedenen Systemen und PHP -Versionen variieren kann, und die verfügbaren Sprachcodes unter Windows- und Linux -Umgebungen sind nicht genau gleich.


3. Kombinieren Sie LocalEconv () , um lokalisierte numerische Formatparameter zu erhalten

In PHP gibt es auch eine Funktion localeConv () , die die Informationen zur Zahlenformat in der aktuellen Umgebung setLocale () , einschließlich Dezimalsymbole, Tausende von Symbolen usw., zurückgibt.

Beispiel:

 <?php
// Setzen Sie das Gebiet auf Deutsch(Deutschland)
setlocale(LC_ALL, 'de_DE.UTF-8');

// Holen Sie sich die aktuellen lokalisierten Formatinformationen
$locale_info = localeconv();

$number = 1234567.89;

echo "Decimal point: " . $locale_info['decimal_point'] . "\n";
echo "Thousands separator: " . $locale_info['thousands_sep'] . "\n";

// verwenden locale 信息Formatnummern
echo number_format(
    $number,
    2,
    $locale_info['decimal_point'],
    $locale_info['thousands_sep']
);
?>

Ausgabe:

 Decimal point: ,
Thousands separator: .
1.234.567,89

In diesem Beispiel wird das für Dezimalpunkte verwendete deutsche Zahlenformat und für Milliten verwendet . im Einklang mit deutschen Zoll.


4. Praktische Fähigkeiten

  1. Priorität bei der Angabe genauer Flächencodes <br> Die von verschiedenen Betriebssystemen unterstützten Gebietskodizes sind unterschiedlich. Sie können sie in ein Array übergeben. PHP wird sich wiederum versuchen:

 setlocale(LC_ALL, ['zh_CN.UTF-8', 'zh_CN', 'Chinese']);
  1. Kombinieren Sie localeConv () und number_format (), um ein dynamisches Format zu implementieren. <br> Dynamisch Formatnummern basierend auf dem vom aktuellen Gebietsschema erhaltenen Trennzeichen.

  2. Verwenden Sie bei der Verarbeitung von Währungsformaten LC_Monetary und kombinieren Sie Money_Format () (Beachten Sie, dass PHP7 es später nicht unterstützt).
    Moderne Projekte empfehlen die Verwendung der NumberFormatter -Klasse.


5. Beispiel: Dynamischer Ausgabe formatierter Zahlen gemäß der Region

 <?php
// Einrichten des Gebietsschemas
setlocale(LC_ALL, 'fr_FR.UTF-8');

// Erhalten Sie lokalisierte digitale Formatinformationen
$locale = localeconv();

$number = 9876543.21;

// 输出Formatnummern
echo number_format($number, 2, $locale['decimal_point'], $locale['thousands_sep']);
?>

Auslaufergebnisse:

 9 876 543,21

Frankreich wird verwendet, um Räume als Tausendstel zu verwenden, und der Dezimalpunkt ist ein Komma.


6. Zusammenfassung

  • setLocale () kann die Gebietsschema im numerischen Format steuern.

  • LocalEconv () stellt spezifische Separatoren für lokalisiertes numerisches Format bereit.

  • Number_Format () kombiniert mit LocaleConv () Parameter kann flexibel Zahlen formatieren.

  • Achten Sie auf die Unterschiede in den Sprachcodes verschiedener Systeme und passen Sie sie in der Testumgebung an.

  • Wenn Sie in modernen Projekten eine stärkere internationale Unterstützung benötigen, empfehlen Sie die NummerFormatter -Klasse von PHP.

Durch die rationale Verwendung von SetLocale () und verwandten Funktionen können PHP -Entwickler problemlos das digitale Format -Display realisieren, das den Gewohnheiten verschiedener Regionen entspricht und die internationale Erfahrung der Anwendung verbessert.


 <?php
// Beispiel:aufstellenlocaleEs ist vereinfacht Chinesisch,Formatnummern输出
setlocale(LC_ALL, 'zh_CN.UTF-8');

$number = 1234567.89;
$locale = localeconv();

echo number_format($number, 2, $locale['decimal_point'], $locale['thousands_sep']);
?>