gpt4 book ai didi

php - 如何通过 PHP Intl(ICU 库)中的货币代码获取货币符号

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:22 24 4
gpt4 key购买 nike

在 PHP 中,我知道货币代码(欧元、英镑、美元...),但我不知道语言环境。我需要为他们获取货币符号

GBP -> £
EUR -> €
USD -> $

使用

$obj = new \NumberFormatter( null, \NumberFormatter::CURRENCY);
echo $obj->formatCurrency( null, 'EUR');

我可以获得 0.00 欧元,因此 NumberFormatter 库可以将货币代码转换为货币符号。但是如何只获取货币符号呢?

$obj = new \NumberFormatter( null, \NumberFormatter::CURRENCY);
$obj->setTextAttribute ( \NumberFormatter::CURRENCY_CODE, 'EUR');
echo $obj->getSymbol ( \NumberFormatter::CURRENCY_SYMBOL);

也不进行翻译并始终返回 $。

最佳答案

不幸的是,这并不像它应该的那样容易,但这里是通过货币代码获取区域设置的货币符号的方法:

function getCurrencySymbol($locale, $currency)
{
// Create a NumberFormatter
$formatter = new NumberFormatter($locale, NumberFormatter::CURRENCY);

// Prevent any extra spaces, etc. in formatted currency
$formatter->setPattern('¤');

// Prevent significant digits (e.g. cents) in formatted currency
$formatter->setAttribute(NumberFormatter::MAX_SIGNIFICANT_DIGITS, 0);

// Get the formatted price for '0'
$formattedPrice = $formatter->formatCurrency(0, $currency);

// Strip out the zero digit to get the currency symbol
$zero = $formatter->getSymbol(NumberFormatter::ZERO_DIGIT_SYMBOL);
$currencySymbol = str_replace($zero, '', $formattedPrice);

return $currencySymbol;
}

测试语言环境:ar, cs, da, de, en, en_GB, en_US, es, fr, fr_CA, he, it, ja, ko, nb, nl, ru, sk, sv, zh

测试货币:AUD、BRL、CAD、CNY、EUR、GBP、HKD、ILS、INR、JPY、KRW、MXN、NZD、THB、TWD、USD、VND、XAF、XCD、XOF、XPF

关于php - 如何通过 PHP Intl(ICU 库)中的货币代码获取货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26934955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com