我使用PHP,并想知道如何通过Internationalization扩展(ICU库的Wrapper)获取区域设置的默认货币?
下面是一个解释,内容和原因的脚本.
我需要一些东西来替换getCurrCode()函数.
$accepted_currencies = array('USD','EUR');
$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
if( ! empty($locale)){
Locale::setDefault($locale);
$currency = getCurrCode();
if( ! in_array($currency, $accepted_currencies)){
$currency = 'USD';
}
}else{
Locale::setDefault('en_US');
}
$fmt = new NumberFormatter( $locale, NumberFormatter::CURRENCY );
$price = $fmt->formatCurrency(1234567.891234567890000, $currency);
我知道,我可以使用setlocale(LC_MONETARY,$locale);但这意味着我必须将所有语言环境安装到Linux上,并处理Linux发行版的变化.那么首先使用Intl会有什么意义呢?