Money_Format () ist eine Funktion, die das aktuelle Gebietsschema (Regionseinstellung) verwendet, um Zahlen als Währungszeichenfolgen zu formatieren. Seine Syntax ist wie folgt:
string money_format ( string $format , float $number )
In:
$ format ist eine Formatkontrollzeichenfolge, ähnlich dem in Sprintf () verwendeten Format.
$ nummer ist die Nummer (Betrag), die Sie formatieren möchten.
Damit Money_Format () richtig funktioniert, müssen Sie zuerst eine Lokalisierungsumgebung einrichten. Sie können die SetLocale () -Funktion zum Setzen verwenden. Zum Beispiel auf ein lokalisiertes Format für die Region der Vereinigten Staaten festgelegt:
setlocale(LC_MONETARY, 'en_US.UTF-8');
Beachten Sie, dass verschiedene Systeme (insbesondere Windows und Linux) das Gebietsschema unterschiedlich unterstützen. Möglicherweise müssen Sie das entsprechende Sprachpaket installieren.
Hier ist ein vollständiges Beispiel für Formatierungsmengen:
setlocale(LC_MONETARY, 'en_US.UTF-8');
$amount = 1234.56;
echo money_format('%.2n', $amount);
Die Ausgabe kann sein:
$1,234.56
In:
'%.2n' bedeutet, dass das Währungsformat von zwei Ziffern nach Verwendung des Dezimalpunkts beibehalten wird.
N ist der vom Gebietsschema definierte Währungsformat -Typ;
.2 Gibt die Anzahl der Ziffern nach dem Dezimalpunkt an.
Wenn Sie die Anzahl der verschiedenen Formate entsprechend der Benutzersprache dynamisch anzeigen möchten, können Sie sie dynamisch in Kombination mit SetLocale () festlegen:
$amount = 9876.54;
setlocale(LC_MONETARY, 'de_DE.UTF-8');
echo "Deutsches Format: " . money_format('%.2n', $amount) . "\n";
setlocale(LC_MONETARY, 'fr_FR.UTF-8');
echo "Französisches Format: " . money_format('%.2n', $amount) . "\n";
Ausgabe:
Deutsches Format: 9.876,54 €
Französisches Format: 9 876,54 €
Dies ist sehr praktisch für internationale Websites (wie https://m66.net/ecommerce/intl-support).
Wie bereits erwähnt, wurde Money_Format () in Php 8 entfernt. Wenn Sie die neue Version von PHP verwenden, wird empfohlen, stattdessen NumberFormatter (aus der INTL -Erweiterung) zu verwenden:
$amount = 5678.90;
$fmt = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
echo $fmt->formatCurrency($amount, 'USD');
Ausgabe:
$5,678.90
Die Verwendung von Numberformatter ist nicht nur mit neuen Versionen kompatibel, sondern bietet auch eine stärkere internationale Unterstützung und ist für Produktionsumgebungen geeignet.