Web Design Tutorials: Photoshop, HTML, Flash, PHP

PHP Tutorial – Currency Format

If you program with PHP, you’ll often need to format numbers to represent currency. This PHP tutorial will show you how to format money using PHP in the locale’s international currency format.

In this tutorial we use the money_format function which is part of the STL in PHP. This function wraps the C library function strfmon() and is only available on Unix/Linux systems. Windows users should use number_format().

Using setlocale()
The first step to using money_format() is setting the locale. This is the international locale you wish to use.

// let’s print the international format for the en_US locale
setlocale(LC_MONETARY, ‘en_US’);

 

// Italian national format with 2 decimals`
setlocale(LC_MONETARY, ‘it_IT’);

Category/locale names can be found in » RFC 1766 and » ISO 639.

Using money_format()
Now that we have set our international locale, we can use the money_format() function.

$number = 1234.56;

// let’s print the international format for the en_US locale
setlocale(LC_MONETARY, ‘en_US’);
echo money_format(‘%i’, $number) . “n”;
// USD 1,234.56

// Italian national format with 2 decimals`
setlocale(LC_MONETARY, ‘it_IT’);
echo money_format(‘%.2n’, $number) . “n”;
// Eu 1.234,56

// Using a negative number
$number = -1234.5672;

// US national format, using () for negative numbers
// and 10 digits for left precision
setlocale(LC_MONETARY, ‘en_US’);
echo money_format(‘%(#10n’, $number) . “n”;
// ($        1,234.57)

// Similar format as above, adding the use of 2 digits of right
// precision and ‘*’ as a fill character
echo money_format(‘%=*(#10.2n’, $number) . “n”;
// ($********1,234.57)

// Let’s justify to the left, with 14 positions of width, 8 digits of
// left precision, 2 of right precision, withouth grouping character
// and using the international format for the de_DE locale.
setlocale(LC_MONETARY, ‘de_DE’);
echo money_format(‘%=*^-14#8.2i’, 1234.56) . “n”;
// Eu 1234,56****

// Let’s add some blurb before and after the conversion specification
setlocale(LC_MONETARY, ‘en_GB’);
$fmt = ‘The final value is %i (after a 10%% discount)’;
echo money_format($fmt, 1234.56) . “n”;
// The final value is  GBP 1,234.56 (after a 10% discount)

Source: onlinemoneymunchers.com

you may also like:

Leave a Reply

Powered by WordPress | Designed by Elegant Themes