95 lines
3.8 KiB
PHP
95 lines
3.8 KiB
PHP
|
<?php
|
||
|
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||
|
// +----------------------------------------------------------------------+
|
||
|
// | PHP version 4 |
|
||
|
// +----------------------------------------------------------------------+
|
||
|
// | Copyright (c) 1997-2003 The PHP Group |
|
||
|
// +----------------------------------------------------------------------+
|
||
|
// | This source file is subject to version 2.0 of the PHP license, |
|
||
|
// | that is bundled with this package in the file LICENSE, and is |
|
||
|
// | available through the world-wide-web at |
|
||
|
// | http://www.php.net/license/2_02.txt. |
|
||
|
// | If you did not receive a copy of the PHP license and are unable to |
|
||
|
// | obtain it through the world-wide-web, please send a note to |
|
||
|
// | license@php.net so we can mail you a copy immediately. |
|
||
|
// +----------------------------------------------------------------------+
|
||
|
// | Author: Marshall Roch <marshall@exclupen.com> |
|
||
|
// +----------------------------------------------------------------------+
|
||
|
//
|
||
|
// $Id: Currencies_UN.php,v 1.3 2005/06/23 08:10:21 cross Exp $
|
||
|
|
||
|
/**
|
||
|
* Currency code driver - United Nations Economic Commision for Europe
|
||
|
*
|
||
|
* Retrieves the ISO 4217 currency codes in XML format from the United
|
||
|
* Nations Economic Commission for Europe. This file is cached for 4 weeks
|
||
|
* by default, since it hardly ever changes. In the event that a new
|
||
|
* currency is added and there is a known exchange rate for that currency,
|
||
|
* it will be automatically added to the list.
|
||
|
*
|
||
|
* @author Marshall Roch <marshall@exclupen.com>
|
||
|
* @copyright Copyright 2003 Marshall Roch
|
||
|
* @license http://www.php.net/license/2_02.txt PHP License 2.0
|
||
|
* @package Services_ExchangeRates
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Include common functions to handle cache and fetch the file from the server
|
||
|
*/
|
||
|
require_once 'Services/ExchangeRates/Common.php';
|
||
|
|
||
|
/**
|
||
|
* United Nations Currency Codes Driver
|
||
|
*
|
||
|
* @link http://www.unece.org/etrades/uncopyright.htm IMPORTANT COPYRIGHT INFORMATION
|
||
|
* @link http://www.unece.org/etrades/unedocs/repository/codelists/xml/CurrencyCodeList.xml
|
||
|
* @package Services_ExchangeRates
|
||
|
*/
|
||
|
class Services_ExchangeRates_Currencies_UN extends Services_ExchangeRates_Common {
|
||
|
|
||
|
/**
|
||
|
* URL of XML feed
|
||
|
* @var string
|
||
|
*/
|
||
|
var $feedUrl = 'http://www.timetrex.com/CurrencyCodeList.xml';
|
||
|
//var $feedUrl = 'http://www.unece.org/etrades/unedocs/repository/codelists/xml/CurrencyCodeList.xml';
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Retrieves currency codes and their associated names (e.g. USD => US Dollar)
|
||
|
* from the UN or the cache. The default cache length is 1 month.
|
||
|
*
|
||
|
* @param int Optionally override default 1 month cache length (in seconds)
|
||
|
* @return array Array of currency codes to currency names
|
||
|
*/
|
||
|
/**
|
||
|
* Downloads exchange rates in terms of the Euro from the European Central Bank. This
|
||
|
* information is updated daily, and is cached by default for 1 hour.
|
||
|
*
|
||
|
* @link http://www.ecb.int/stats/eurofxref/ HTML version
|
||
|
* @link http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml XML version
|
||
|
*
|
||
|
* @param int Length of time to cache (in seconds)
|
||
|
* @return array Array of currency codes to exchange rates
|
||
|
*/
|
||
|
function retrieve($cacheLength, $cacheDir) {
|
||
|
|
||
|
// retrieve the feed from the server or cache
|
||
|
$root = $this->retrieveXML($this->feedUrl, $cacheLength, $cacheDir);
|
||
|
|
||
|
foreach($root->children as $curr) {
|
||
|
// Filter out blank or unwanted elements
|
||
|
if ($curr->name == "Currency") {
|
||
|
// loop through and put them into an array
|
||
|
$currencies[$curr->children[1]->content] = $curr->children[3]->content;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $currencies;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
?>
|