出现此问题的原因如下:
有国际充值业务,信息如下:
MONEY:₱48.00 CURRENCY:PHP
其中money 为充值金额(当前locale的金额), currency为货币信息与 money对应。
为了统计记账方便均想把money ₱48.00
转换成为肉眼可是识别的浮点数信息。
于是借助PHP官方intl
扩展进行如下代码开发:
$locale = ?
$money = '₱48.00';
$currency = 'PHP';
$fmt = new NumberFormatter($locale, NumberFormatter::CURRENCY);
$__ = $fmt->parseCurrency($money, $currency);
var_dump($__)
//$__ === false为转换失败,若为float 则转换成功
不料却遇见locale
信息无法获取的困难,再借助intl
中locale
来获取如下:
$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
var_dump($locale);
但是accept_language不是正常的locale信息
所以是否有办法通过 currency
获取到 locale
学习是最好的投资!