Money_format () 는 현재 로케일 (지역 설정)을 사용하여 숫자를 통화 문자열로 포맷하는 함수입니다. 구문은 다음과 같습니다.
string money_format ( string $format , float $number )
안에:
$ 형식은 sprintf () 에 사용 된 형식과 유사한 형식 제어 문자열입니다.
$ 숫자는 포맷하려는 숫자 (금액)입니다.
Money_format () 가 올바르게 작동하려면 먼저 현지화 환경을 설정해야합니다. setlocale () 함수를 사용하여 설정할 수 있습니다. 예를 들어, 미국 지역의 현지 형식으로 설정하십시오.
setlocale(LC_MONETARY, 'en_US.UTF-8');
다른 시스템 (특히 Windows 및 Linux)은 로케일을 다르게 지원하므로 해당 언어 팩을 설치해야 할 수도 있습니다.
다음은 서식 금액의 전체 예입니다.
setlocale(LC_MONETARY, 'en_US.UTF-8');
$amount = 1234.56;
echo money_format('%.2n', $amount);
출력은 다음과 같습니다.
$1,234.56
안에:
'%.2n'은 소수점을 사용한 후 두 자리의 통화 형식이 유지됨을 의미합니다.
n은 로케일로 정의 된 통화 형식 유형입니다.
.2 소수점 후 숫자 수를 지정합니다.
사용자 언어에 따라 다양한 형식의 양을 동적으로 표시하려면 setLocale () 와 함께 동적으로 설정할 수 있습니다.
$amount = 9876.54;
setlocale(LC_MONETARY, 'de_DE.UTF-8');
echo "독일 형식: " . money_format('%.2n', $amount) . "\n";
setlocale(LC_MONETARY, 'fr_FR.UTF-8');
echo "프랑스 형식: " . money_format('%.2n', $amount) . "\n";
산출:
독일 형식: 9.876,54 €
프랑스 형식: 9 876,54 €
이것은 국제 웹 사이트 (예 : https://m66.net/ecommerce/intl-support)에서 매우 실용적입니다.
앞에서 언급했듯이 Money_format ()는 PHP 8에서 제거되었습니다. 새 버전의 PHP를 사용하는 경우 NumberFormatter ( Intl Extension에서)를 대신 사용하는 것이 좋습니다.
$amount = 5678.90;
$fmt = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
echo $fmt->formatCurrency($amount, 'USD');
산출:
$5,678.90
Numberformatter를 사용하는 것은 새로운 버전과 호환 될뿐만 아니라 국제 지원을 강력하게 제공하며 생산 환경에 적합합니다.