<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Artikel dient nur für Demonstrationscode -Beispiele,Hat nichts mit dem Inhalt des Textes zu tun。</span></span><span>
</span><span><span class="hljs-comment">// Bitte passen Sie es an die tatsächliche Situation an, wenn Sie es verwenden。</span></span><span>
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_MONETARY, </span><span><span class="hljs-string">'en_US.UTF-8'</span></span><span>);
</span><span><span class="hljs-variable">$amount</span></span><span> = </span><span><span class="hljs-number">1234567.89</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%i'</span></span><span>, </span><span><span class="hljs-variable">$amount</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
---
</span><span><span class="hljs-comment"># Wie man es richtig benutztPHPvonmoney_formatFunktionen undsetlocaleGekoppelt, um lokalisierte Währungsformate zu verarbeiten?</span></span><span>
在涉及金融或电商类应用von开发中,货币格式化是一个常见von需求。PHP 中von `money_format` Funktionale Koordination `setlocale` 可以帮助开发者根据不同von地区设置,输出符合本地习惯von货币字符串。Jedoch,Viele Anfänger neigen dazu, bei der Verwendung dieser beiden Funktionen Verwirrung zu begegnen。In diesem Artikel wird ausführlich die Verwendung und Vorsichtsmaßnahmen vorgestellt。
</span><span><span class="hljs-comment">## 1. Grundprinzipien</span></span><span>
- **`setlocale`**
用来设定程序von区域信息(Locale),Einflusszahlen、Datum、Währung und andere Formatierungsregeln。
常见von设置方式为:
```php
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_MONETARY, </span><span><span class="hljs-string">'en_US.UTF-8'</span></span><span>);
</span></span>Der obige Code bedeutet, das Währungsformat auf das Englisch (UTF-8-Codierung) festzulegen.
geld_format
Wird verwendet, um den Währungswert gemäß dem aktuellen Gebietsschema zu formatieren.
Zum Beispiel:
<span><span><span class="hljs-variable">$amount</span></span><span> = </span><span><span class="hljs-number">1234.56</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%i'</span></span><span>, </span><span><span class="hljs-variable">$amount</span></span><span>);
</span></span>Im US -amerikanischen Gebietsschema wird es ausgegeben: USD 1234,56 .
Der erste Parameter von Money_Format ist die Formatkontrollzeichenfolge. Gemeinsame sind:
%I : Output -Lokalisierung internationaler Formatwährung (einschließlich Währungssymbole) gemäß der Region.
%N : Output Lokalisierte nationale Formatwährung gemäß der Region.
%! N : Währungssymbole sind verboten, und nur der numerische Teil wird ausgegeben.
Beispiel:
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%n'</span></span><span>, </span><span><span class="hljs-number">1234.56</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%i'</span></span><span>, </span><span><span class="hljs-number">1234.56</span></span><span>);
</span></span>Was beachtet werden sollte ist:
Money_Format ist auf Windows -Plattformen nicht verfügbar . Es ist hauptsächlich wirksam für UNIX-ähnliche Systeme (Linux, macOS).
In Windows- oder späteren Versionen von PHP wird empfohlen, NumberFormatter (INTL-Erweiterung) zu verwenden, um eine plattformübergreifende Währungsformatierung zu erreichen.
Zum Beispiel:
<span><span><span class="hljs-variable">$fmt</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">NumberFormatter</span></span><span>(</span><span><span class="hljs-string">'en_US'</span></span><span>, </span><span><span class="hljs-title class_">NumberFormatter</span></span><span>::</span><span><span class="hljs-variable constant_">CURRENCY</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$fmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">formatCurrency</span></span><span>(</span><span><span class="hljs-number">1234.56</span></span><span>, </span><span><span class="hljs-string">'USD'</span></span><span>);
</span></span>Angenommen, Sie entwickeln ein internationales E-Commerce-System und müssen unterschiedliche Währungsanzeigemethoden gemäß dem Land des Benutzers exportieren. Dies können Sie dies tun:
<span><span><span class="hljs-variable">$locale</span></span><span> = </span><span><span class="hljs-string">'fr_FR.UTF-8'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_MONETARY, </span><span><span class="hljs-variable">$locale</span></span><span>);
</span><span><span class="hljs-variable">$amount</span></span><span> = </span><span><span class="hljs-number">987654.32</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%i'</span></span><span>, </span><span><span class="hljs-variable">$amount</span></span><span>);
</span></span>Die Ausgabe kann: 987 654,32 EUR (French Custom) sein.
Verwenden Sie SetLocale , um die Lokalisierungsregeln der Währung zu steuern.
In einer Unix-ähnlichen Umgebung können Sie Money_Format direkt verwenden, um lokalisierte Währungen schnell auszugeben.
In Windows- oder plattformübergreifenden Umgebungen wird empfohlen, NumberFormatter mit INTL- Erweiterung zu verwenden.
Während der Entwicklung ist es wichtig, die regionalen Einstellungen der Zielplattform und der Benutzer zu klären, um den Fehler der Funktion aufgrund des Ausfalls des Gebietsschemas zu vermeiden.
Durch die korrekte Übereinstimmung von Money_Format und SetLocale kann die Benutzererfahrung der Anwendung in verschiedenen Regionen erheblich verbessert werden, wodurch die Währungsanzeige mehr den Lesegewohnheiten lokaler Benutzer entspricht.