Position actuelle: Accueil> Derniers articles> Comment utiliser correctement la fonction Money_Format de PHP et SetLocale pour gérer les formats de devises localisés?

Comment utiliser correctement la fonction Money_Format de PHP et SetLocale pour gérer les formats de devises localisés?

gitbox 2025-09-16
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Cet article est uniquement pour des exemples de code de démonstration,N&#39;a rien à voir avec le contenu du texte。</span></span><span>
</span><span><span class="hljs-comment">// Veuillez l&#39;ajuster en fonction de la situation réelle lorsque vous l&#39;utilisez。</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">?&gt;</span></span><span>

---

</span><span><span class="hljs-comment"># Comment l&#39;utiliser correctementPHPdemoney_formatFonctions etsetlocaleCouplé pour gérer les formats de devises localisés?</span></span><span>

在涉及金融或电商类应用de开发中,货币格式化是一个常见de需求。PHP 中de `money_format` Coordination fonctionnelle `setlocale` 可以帮助开发者根据不同de地区设置,输出符合本地习惯de货币字符串。Cependant,De nombreux débutants sont enclins à rencontrer une certaine confusion lors de l&#39;utilisation de ces deux fonctions。Cet article introduira en détail comment utiliser et les précautions。

</span><span><span class="hljs-comment">## 1. Principes de base</span></span><span>

- **`setlocale`**  
  用来设定程序de区域信息(Locale),Influencer les nombres、date、Devises et autres règles de formatage。  
  常见de设置方式为:
  ```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>

Le code ci-dessus signifie définir le format de devise sur l'anglais américain (codage UTF-8).

  • Money_format
    Utilisé pour formater la valeur de la devise en fonction des paramètres régionaux actuels.
    Par exemple:

     <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>

    Sous les paramètres régionaux américains, il sortira: 1234,56 USD .

2. Paramètres de mise en forme communs

Le premier paramètre de Money_Format est la chaîne de contrôle du format. Les communs sont:

  • % I : Selon la région du format international localisé (y compris les symboles de devise) selon la région.

  • % N : Production de la monnaie du format national localisé selon la région.

  • %! N : Les symboles de devise sont interdits, et seule la partie numérique est sortie.

Exemple:

 <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>

3. Compatibilité multiplateforme

Ce qui doit être noté est:

  • Money_Format n'est pas disponible sur les plates-formes Windows . Il est principalement efficace sur les systèmes de type UNIX (Linux, macOS).

  • Dans Windows ou vers les versions ultérieures de PHP, il est recommandé d'utiliser NumberFormatter (Extension INTL) pour atteindre le formatage de la devises multiplateforme.

Par exemple:

 <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>-&gt;</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>

4. Scénarios d'application pratiques

Supposons que vous développez un système international de commerce électronique et que vous devez exporter différentes méthodes d'affichage de devises en fonction du pays de l'utilisateur, vous pouvez le faire:

 <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>

La production peut être: 987 654,32 EUR (coutume française).

5. Résumé et meilleures pratiques

  1. Utilisez SetLocale pour contrôler les règles de localisation de la monnaie.

  2. Dans un environnement de type Unix, vous pouvez directement utiliser Money_Format pour produire rapidement les devises localisées.

  3. Dans les environnements Windows ou multiplateforme, il est recommandé d'utiliser NumberFormatter avec une extension INTL .

  4. Pendant le développement, il est important de clarifier les paramètres régionaux de la plate-forme cible et des utilisateurs pour éviter la défaillance de la fonction en raison de la défaillance des paramètres régionaux.

En correspondant correctement à Money_Format et SetLocale , l'expérience utilisateur de l'application dans différentes régions peut être considérablement améliorée, ce qui rend l'affichage en devises plus conformément aux habitudes de lecture des utilisateurs locaux.