Skip to content
Advertisement

Get currency symbol in PHP

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

'€'.
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement