Let’s start with simple piece of code to format money with NumberFormatter
:
$formatter = new NumberFormatter('en_US', NumberFormatter::CURRENCY); echo $formatter->formatCurrency(123456789, 'JPY');
This prints: ¥123,456,789
.
This is ok if you want to format money.
But what I want to do is to get currency symbol (e.g. ¥) for given currency ISO 4217 code (e.g. JPY).
My first guess was to try using:
$formatter->getSymbol(NumberFormatter::CURRENCY_SYMBOL);
But that gives currency symbol for locale given in constructor (en_US), $ in my case.
Is there a way to get currency symbol by currency ISO 4217 code in PHP?
Advertisement
Answer
I achieved this using https://github.com/symfony/Intl:
SymfonyComponentIntlIntl::getCurrencyBundle()->getCurrencySymbol('EUR')
returns
'€'.