Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

split currency and amount from a string

I am importing a file which has amount with different currency signs

£12.10
$26.13
€12.50

I need to import and convert this into single currency. I am splitting the string as follows

$parts = split(' ', preg_replace("/([0-9])/", ' ${1}', $amount, 1));

Couldn't make preg_split work with PREG_SPLIT_DELIM_CAPTURE

$parts = preg_split("/\d/", $amount, 2, PREG_SPLIT_DELIM_CAPTURE);

I have an array of currency sign to currency code

$currencySymbols = array('£'=>'GBP', '$'=>'USD','€'=>'EUR')

I need to 1. split the string into currency sign and value - if there is a better way then what i am doing 2. map the currency sign to currency code. Not able to map with $currencySymbols[$parts[0]]

Any help will be appreciated. (PHP 5.2.6) using charset=utf-8

Many thanks

like image 524
webber Avatar asked Jul 04 '26 13:07

webber


1 Answers

You should probably use the NumberFormatter::parseCurrency to do this instead of regular string manipulation.

Although most of the time the currency symbol will come before the numeric value, there are some European countries where the currency symbol is written last.

like image 62
Roman Avatar answered Jul 06 '26 03:07

Roman