Php 获取基于符号的货币代码
我目前正在使用一个API,在这个API中,我接收的不是货币的浮点或整数,而是这样的字符串Php 获取基于符号的货币代码,php,currency,intl,Php,Currency,Intl,我目前正在使用一个API,在这个API中,我接收的不是货币的浮点或整数,而是这样的字符串 2.49美元 2.49英镑 2.49欧元 等等 问题是,我需要分别存储值和货币,但货币需要存储为ISO代码,例如欧元、美元或英镑,而不是欧元和美元 在PHP中,是否有任何方法可以使用NumberFormatter或类似的东西获取基于货币符号的货币代码 目前,我只是有一个很长的货币符号和名称列表,我使用这些符号和名称执行类似于string\u contains(“$2.49”,“$”)的操作,以检查某种货
- 2.49美元
- 2.49英镑
- 2.49欧元
- 等等
string\u contains(“$2.49”,“$”)
的操作,以检查某种货币。您可以使用:
请注意,Richard关于使用同一符号的多种货币的评论仍然适用,但可以通过为NumberFormatter
指定不同的地区来处理:
<?php
$fmt = new NumberFormatter('en_AU', NumberFormatter::CURRENCY);
echo "#1: ".$fmt->parseCurrency("$2.49", $curr)." in $curr<br>";
?>
没有通用的解决方案,因为多种货币使用相同的符号。例如,澳元、新西兰元、美元……都使用美元符号。@GauravDave-这与问题的要求正好相反。我会冒险猜测,将
en_-US
更改为另一个国家代码可能会导致$
根据地区被解释为不同的货币。是的,已确认。
#1: 2.49 in USD
#2: 2.49 in GBP
#3: 2.49 in EUR
<?php
$fmt = new NumberFormatter('en_AU', NumberFormatter::CURRENCY);
echo "#1: ".$fmt->parseCurrency("$2.49", $curr)." in $curr<br>";
?>
#1: 2.49 in AUD