TimeTrex/classes/pear/Services/ExchangeRates/Rates_NBI.php

98 lines
3.7 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: Simon Brüchner <powtac@gmx.de> |
// +----------------------------------------------------------------------+
//
// $Id: Rates_NBI.php,v 1.1 2004/02/22 14:11:54 mroch Exp $
/**
* Exchange rate driver - National Bank of Israel
*
* The Excange Rates of the National Bank of Israel are updated daily.
*
* @link http://www.bankisrael.gov.il/eng.shearim/
*
* @author Simon Brüchner <powtac@gmx.de>
* @copyright Copyright 2003 Simon Brüchner
* @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';
/**
* National Bank of Israel Currency Exchange Rates Driver
*
* @package Services_ExchangeRates
*/
class Services_ExchangeRates_Rates_NBI extends Services_ExchangeRates_Common {
/**
* URL of XML feed
* @access private
* @var string
*/
var $_feedXMLUrl = 'http://www.bankisrael.gov.il/heb.shearim/currency.php';
/**
* Downloads exchange rates in terms of the ILS (New Israeli Shequel) from
* the National Bank of Israel. This information is updated daily,
* and is cached by default for 1 hour.
*
* Returns a multi-dimensional array containing:
* 'rates' => associative array of currency codes to exchange rates
* 'source' => URL of feed
* 'date' => date feed last updated, pulled from the feed (more reliable than file mod time)
*
* @link http://www.bankisrael.gov.il/eng.shearim/ HTML version
* @link http://www.bankisrael.gov.il/heb.shearim/currency.php XML version
*
* @param int Length of time to cache (in seconds)
* @return array Multi-dimensional array
*/
function retrieve($cacheLength, $cacheDir) {
// IMPORTANT: defines ILS mapping. Without this, you can't convert
// to or from ILS!
$return['rates'] = array('ILS' => 1.0);
$return['source'] = $this->_feedXMLUrl;
// retrieve the feed from the server or cache
$root = $this->retrieveXML($this->_feedXMLUrl, $cacheLength, $cacheDir);
// set date published
$return['date'] = $root->children[0]->content;
// get down to array of exchange rates
$xrates = $root->children;
// loop through and put them into an array
foreach ($xrates as $rateinfo) {
if ($rateinfo->children[4]->content != 0) {
$return['rates'][$rateinfo->children[2]->content] =
1 / $rateinfo->children[4]->content
* $rateinfo->children[1]->content;
}
}
return $return;
}
}
?>