php - 在 PHP 中获取货币符号

标签 php formatting currency

让我们从一段简单的代码开始,用 NumberFormatter 格式化货币:

$formatter = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $formatter->formatCurrency(123456789, 'JPY');

打印:¥123,456,789

如果你想格式化钱,这没关系。

但我想做的是获取给定货币 ISO 4217 代码(例如 JPY)的货币符号(例如 ¥)。

我的第一个猜测是尝试使用:

$formatter->getSymbol(NumberFormatter::CURRENCY_SYMBOL);

但这给出了构造函数 (en_US) 中给出的语言环境的货币符号,在我的例子中是 $。

有没有办法在 PHP 中通过货币 ISO 4217 代码获取货币符号?

最佳答案

首先,世界上没有任何人都可以阅读和理解的国际全局货币符号表。

在每个地区/国家/地区,货币符号会有所不同,这就是为什么您必须使用浏览器/用户区域设置根据阅读者来确定它们。

正确的方法如您所料,使用 NumberFormatter::CURRENCY_SYMBOL,但您首先必须设置适当的语言环境,例如 en-US@currency=JPY:

$locale='en-US'; //browser or user locale
$currency='JPY';
$fmt = new NumberFormatter( $locale."@currency=$currency", NumberFormatter::CURRENCY );
$symbol = $fmt->getSymbol(NumberFormatter::CURRENCY_SYMBOL);
header("Content-Type: text/html; charset=UTF-8;");
echo $symbol;

这样用户就可以理解符号了。

例如,$symbol 将是:

  • 加元 (CAD):CA$在美国,CAD在罗马尼亚,$CA在伊朗
  • 伊朗里亚尔 (IRR):美国为IRR,而伊朗为

关于php - 在 PHP 中获取货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13897516/

相关文章:

php - 在输入字段中创建一个跨度,例如 Facebook 消息

javascript - 根据空闲/忙碌调用更改图像

javascript - 如何使用 jQuery 将行号添加到代码块?

俄罗斯卢布的 PayPal 交易

ios - NSNumberFormatter paddingPosition 不起作用

php - 使用 jQuery 添加从 Doctype 到 iframe 的完整 HTML

php - Woocommerce 获取下一个/上一个产品

ruby-on-rails - 简单的 Rails 文本字段格式

java - 如何处理丑陋的多重声明(非方法代码的代码折叠)

mysql - 将 Money 持久化到数据库中。设计决策