Get live currency rates in PHP & conversion using APIs

In the below method, we get live currency rates from Google.
This function uses CURL so make sure you have enabled curl extension in php.

 

Google has an inbuilt calculator which can also be used for converting a currency into another.Doing so is really simple, you just type “AMOUNT”, “CURRENCY_CONVERTING_FROM” in “CURRENCY_CONVERTING_TO” and search, the inbuilt calculator will give you the result.

Try this
http://www.google.com/finance/converter?a=1&from=USD&to=INR

 

Google also has a secret calculator API (http://www.google.com/ig/calculator) that is usually used for iGoogle gadgets, but its free and open, anyone can use it.
So if you want to convert a currency into another using the API, you can grab the below code.


<?php

function get_currency($from_Currency, $to_Currency, $amount) {

$amount = urlencode($amount);
$from_Currency = urlencode($from_Currency);
$to_Currency = urlencode($to_Currency);

$url = "http://www.google.com/finance/converter?a=$amount&from=$from_Currency&to=$to_Currency";

$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$rawdata = curl_exec($ch);
curl_close($ch);
$data = explode('bld>', $rawdata);
$data = explode($to_Currency, $data[1]);
return round($data[0], 2);
}

// Call the function to get the currency converted
echo get_currency('USD', 'INR', 1);

?>

 

You can also do same by using live currency Value from yahoo finance (http://finance.yahoo.com/)

Here is an example to get the value of US Dollar in Indian Rupees.


<?php

$from   = 'USD'; /*change it to your required currencies */
$to     = 'INR';
$url    = 'http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from . $to .'=X';

$handle = @fopen($url, 'r');
if ($handle) {
$result = fgets($handle, 4096);
fclose($handle);
}
$allData = explode(', ', $result); /* Get all the contents to an array */
$dollarValue = $allData[1];
echo 'Value of $1 in Indian Rupees is &#8377; '.$dollarValue;

?>