현재 위치: > 최신 기사 목록> 현지화 된 통화 형식을 처리하기 위해 PHP의 Money_Format 함수 및 setLocale을 올바르게 사용하는 방법은 무엇입니까?

현지화 된 통화 형식을 처리하기 위해 PHP의 Money_Format 함수 및 setLocale을 올바르게 사용하는 방법은 무엇입니까?

gitbox 2025-09-16
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 이 기사는 데모 코드 예제에만 해당됩니다,텍스트의 내용과 관련이 없습니다.。</span></span><span>
</span><span><span class="hljs-comment">// 사용할 때 실제 상황에 따라 조정하십시오.。</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"># 올바르게 사용하는 방법PHP~의money_format기능 및setlocale현지화 된 통화 형식을 처리하도록 결합합니다?</span></span><span>

在涉及金融或电商类应用~의开发中,货币格式化是一个常见~의需求。PHP 中~의 `money_format` 기능 조정 `setlocale` 可以帮助开发者根据不同~의地区设置,输出符合本地习惯~의货币字符串。하지만,이 두 기능을 사용할 때 많은 초보자가 혼란에 빠지기 쉽습니다.。이 기사는 사용 방법과 예방 조치에 대해 자세히 소개합니다.。

</span><span><span class="hljs-comment">## 1. 기본 원칙</span></span><span>

- **`setlocale`**  
  用来设定程序~의区域信息(Locale),숫자에 영향을 미칩니다、날짜、통화 및 기타 서식 규칙。  
  常见~의设置方式为:
  ```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>

위의 코드는 통화 형식을 미국 영어 (UTF-8 인코딩)로 설정하는 것을 의미합니다.

  • Money_format
    현재 로케일에 따라 통화 값을 포맷하는 데 사용됩니다.
    예를 들어:

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

    미국 로케일에서는 출력됩니다 : USD 1234.56 .

2. 공통 형식 매개 변수

Money_format 의 첫 번째 매개 변수는 형식 제어 문자열입니다. 일반적인 것은 다음과 같습니다.

  • %I : 지역에 따른 출력 현지 국제 형식 통화 (통화 기호 포함).

  • %N : 지역에 따른 출력 현지 국가 형식 통화.

  • %! n : 통화 기호는 금지되며 숫자 부분 만 출력입니다.

예:

 <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. 교차 플랫폼 호환성

주목해야 할 것은 다음과 같습니다.

  • Windows 플랫폼에서는 Money_format을 사용할 수 없습니다 . 주로 유닉스와 같은 시스템 (Linux, MacOS)에 효과적입니다.

  • Windows 또는 이후의 PHP 버전에서는 Numberformatter (Intl Extension)를 사용하여 크로스 플랫폼 통화 형식을 달성하는 것이 좋습니다.

예를 들어:

 <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. 실제 응용 시나리오

국제 전자 상거래 시스템을 개발하고 있으며 사용자 국가에 따라 다양한 통화 디스플레이 방법을 내보내야한다고 가정 해 봅시다.

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

출력은 987 654,32 EUR (프랑스 관습) 일 수 있습니다.

5. 요약 및 모범 사례

  1. SetLocale을 사용하여 통화의 현지화 규칙을 제어하십시오.

  2. Unix와 같은 환경에서는 Money_format을 직접 사용하여 현지화 된 통화를 신속하게 출력 할 수 있습니다.

  3. Windows 또는 Cross-Platform 환경에서는 INTL 확장자와 함께 NumberFormatter를 사용하는 것이 좋습니다.

  4. 개발 중에 로케일의 고장으로 인해 기능의 실패를 피하기 위해 대상 플랫폼 및 사용자의 지역 설정을 명확히하는 것이 중요합니다.

Money_formatSetlocale 과 올바르게 일치함으로써 다른 지역에서 응용 프로그램의 사용자 경험을 크게 향상시킬 수있어 지역 사용자의 읽기 습관에 따라 통화 표시가 더 많이 표시됩니다.