根据符号获取货币代码



我目前正在使用API,而不是浮动或整数以货币为货币,我会收到这样的字符串。

  • $ 2.49
  • £2.49
  • €2.49
  • 等。

问题是我需要单独存储价值和货币,但需要将货币作为ISO代码存储,因此,例如EUR,USD或GBP,而不是€和$。

PHP中有任何方法可以使用numberFormatter或类似的东西根据货币符号获得货币代码?

目前,我只有很长的货币符号和名称列表,我用来做诸如string_contains('$2.49', '$')之类的事情来检查某种货币。

您可以与NumberFormatter :: ParseCurrency:

一起工作
<?php
$fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo "#1: ".$fmt->parseCurrency("$2.49", $curr)." in $curr<br>";
echo "#2: ".$fmt->parseCurrency("£2.49", $curr)." in $curr<br>";
echo "#3: ".$fmt->parseCurrency("€2.49", $curr)." in $curr<br>";
?>

打印:

#1: 2.49 in USD
#2: 2.49 in GBP
#3: 2.49 in EUR

请注意,理查德(Richard(对使用相同符号的多种货币的评论仍然适用,但可以通过为NumberFormatter指定不同的地区来处理:

<?php
$fmt = new NumberFormatter('en_AU', NumberFormatter::CURRENCY);
echo "#1: ".$fmt->parseCurrency("$2.49", $curr)." in $curr<br>";
?>

将例如将第一个输出更改为:

#1: 2.49 in AUD

最新更新