akhkharu
Постоялец
- Регистрация
- 26 Июн 2007
- Сообщения
- 110
- Реакции
- 19
- Автор темы
- #1
Условия: PHP5. Можно запускать через прокси (передавать GetCurrencty ссылку на контекст). Результат сохраняет в файлик currency.cache. Типы валют тоже легко изменяются:
PHP:
$usd = $this->xml->xpath("//Valute[@ID='R01235']/Value");
$eur = $this->xml->xpath("//Valute[@ID='R01239']/Value");
PHP:
<?php
define('USE_PROXY', false);
class CCurrency {
private $currency;
private $xml;
private $count;
public function GetCurrency($url, $context) {
if (USE_PROXY)
$this->currency = file_get_contents($url, false, $context);
else
$this->currency = file_get_contents($url);
}
public function ProcessCurrency() {
if (version_compare("5.0.0", phpversion()) <= 0 && class_exists("SimpleXMLElement")) {
$this->xml = new SimpleXMLElement($this->currency);
} else die("Ошибка: для работы функции получения курса валют должна быть установлена версия PHP не ниже 5 и должно быть установлено расширение SimpleXML.");
}
public function SaveCurrency() {
$out = array();
$cache = fopen("currency.cache", "w");
$usd = $this->xml->xpath("//Valute[@ID='R01235']/Value");
$eur = $this->xml->xpath("//Valute[@ID='R01239']/Value");
$usd = (string) $usd[0]; $eur = (string) $eur[0];
$usd = str_replace(".",",",round(str_replace(",",".",$usd),2));
$eur = str_replace(".",",",round(str_replace(",",".",$eur),2));
fwrite ($cache, $usd . ";" . $eur);
fclose($cache);
}
}
$currency = new CCurrency();
$currency->GetCurrency("http://www.cbr.ru/scripts/XML_daily.asp", $proxy);
$currency->ProcessCurrency();
$currency->SaveCurrency();
?>