|
||||||
Currency Conversion with Yahoo! FinanceHow General Users and Programmers can Convert Currencies On-line
Yahoo! Finance is an exellent source of information such as stock quotes - but that's not all. This article looks at how to use Yahoo! Finance's currency conversion.
Everyone is interested in the stock markets at the moment and services such as Yahoo! Finance's stock quotes are a valuable resource for:
...and all of those people may be interested to learn that Yahoo! Finance also supplies a currency conversion service. Using the Yahoo! Finance Currency Conversion Web PageAnyone who has used Yahoo! Finance stock quotes knows just how easy it is to obtain the information that they need, and the Yahoo! Finance Currency Converter is no different:
and, of course, a button to set the conversion into motion. Downloading Yahoo! Finance Currency Conversion DataThe Yahoo! Finance currency conversion web page contains a link which, when clicked on, will load the data into a spreadsheet (such as Microsoft Excel or OpenOffice.org Calc); however (and this is where programmers may prick up their ears) the currency conversion data may also be accessed directly via the correct url. For example, to find the conversion rate from U.S. dollar to British pounds the url would be: http://quote.yahoo.com/d/quotes.csv?s=USDGBP=X&f=l1&e=.csv
The above means : "convert from U.S. dollars(USD) to British pounds (GBP) using the most current conversion rate (l1) and output in csv format"; and armed with this information the programmer will be ready to start incorporating the data into an application - for example a PHP script. Using Yahoo! Finance Currency Conversion Data in a PHP ScriptA very simple PHP script is all that it takes to obtain the conversion rate, one that will format the url and then read the stream of data returned from the Yahoo! web site: function show_currency_conversion ($currency_from, $currency_to) {
$url = "http://quote.yahoo.com/d/quotes.csv?s="
. $currency_from . $currency_to . "=X"
. "&f=l1&e=.csv";
open = open($url, "r");
$exchange_rate = freed(open, 2000);
close(open);
echo $exchange_rate;
}
If this function is saved into a PHP library (for example yahoo_finance.php) then it can be called from any PHP web page: <?php
include ("yahoo_finance.php");
$currency_from=$_REQUEST['currency_from'];
$currency_to=$_REQUEST['currency_to'];
show_currency_conversion ($currency_from, $currency_to);
?>
And if this script is saved as yahoo_currency.php then it may be tested by calling it via a web browser, for example: http://<my server>/yahoo_currency.php?currency_from=USD¤cy_to=GBP
And then, of course, this PHP script can be used in an Ajax application. Using Yahoo! Finance Currency Conversion Data in an Ajax ApplicationOnce the PHP script is in place then that can be used as part of an Ajax application, for example one that allows the user to select currencies with radio buttons and then clicking a button to view the conversion rate: <script type = "text/javascript">
var XMLHttp;
/Create the correct XML Http object for the browser/
if (navigator.appName == "Microsoft Internet Explorer") {
XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
XMLHttp = new XMLHttpRequest();
}
function get_currency() {
var currency_form = document.forms['currency_form'];
/* Find out how many elements are in each set of radio buttons */
var from_length = currency_form.currency_from.length
var to_length = currency_form.currency_to.length
var currency_from = ""
var currency_to = ""
/* Find out which currencies have been selected */
for (var i = 0; i <from_length; i++) {
if (currency_form.currency_from[i].checked) {
currency_from = currency_form.currency_from[i].value
}
}
for (var i = 0; i <from_length; i++) {
if (currency_form.currency_to[i].checked) {
currency_to = currency_form.currency_to[i].value
}
}
/* If no currencies are selected then tell the user */
if ( currency_from == "" || currency_to == "") {
alert ("Please select a currency")
} else {
/* Send the request to the server */
var url = "yahoo_currency.php?"
+ "currency_from=" + currency_from
+ "¤cy_to=" + currency_to
XMLHttp.open("GET", url, true);
XMLHttp.onreadystatechange = function() {
if (XMLHttp.readyState == 4) {
/* Once the server has completed its tasks display the result */
var response =
"1 " + currency_from + " = " + XMLHttp.responseText + " " + currency_to
document.getElementById( 'result_area' ).innerHTML = response
}
XMLHttp.send(null);
}
}
}
</script>
As well as the Javascript code an HTML form will be required - one that defines the radio buttons for the currencies and that has a button that will call the above Javascript function: <form name=currency_form>
<table>
<tr><th>From</th><th>To</th></tr>
<tr><td>
<input type=radio name=currency_from value=EUr>euro<br />
<input type=radio name=currency_from value=GBp>british Pound<br />
<input type=radio name=currency_from value=USD>U.S. Dollar<br />
</td>
<td>
<input type=radio name=currency_to value=EUr>euro<br />
<input type=radio name=currency_to value=GBp>british Pound<br />
<input type=radio name=currency_to value=USD>U.S. Dollar<br />
</td>
<td>
<input type=button value="Do Currency Conversion"
onclick = "javascript:get_currency();">
</td>
<td>
<div id=result_area></div>
</td>
</tr>
</table>
</form>
ConclusionWith Yahoo! Finance anyone can easily access the on-line currency converter or, with a little more effort, a programmer can use that data in their own applications - all through the power of Javascript and PHP. Additional ReadingAccessing Yahoo! Finance from PHP Using Yahoo! Financial Stock Quotes An Introduction to Google Finance
The copyright of the article Currency Conversion with Yahoo! Finance in AJAX Programming is owned by Mark Alexander Bain. Permission to republish Currency Conversion with Yahoo! Finance in print or online must be granted by the author in writing.
|
||||||
|
|
||||||
|
|
||||||