Alıntı
<?php
include "doviz.php";
$doviz = new Doviz();
echo 'Döviz Türü : '.$doviz->get('USD')['Isim'];
echo '<br>';
echo 'Satış : '.$doviz->get('USD')['ForexSelling'];
echo '<br>';
echo 'Alış : '.$doviz->get('USD')['ForexBuying'];
//Capraz
//Capraz echo $doviz->getCrossRate('EUR')['rate'];
?><?php
class Doviz {
private $page, $currencies;
public function __construct(){
$this->page = new DOMDocument;
$this->page->loadXML($this->getXML());
$this->currencies = array();
$this->initCurrencies();
return $this;
}
private function getXML(){
$xmlURL = 'http://www.tcmb.gov.tr/kurlar/today.xml';
if(function_exists('curl_version')){
$ch = curl_init();
curl_setopt_array($ch,
array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $xmlURL
)
);
$xmlPage = curl_exec($ch);
curl_close($ch);
}
else{
$xmlPage = file_get_contents($xmlURL);
}
return $xmlPage;
}
private function initCurrencies(){
foreach($this->page->getElementsByTagName('Currency') as $currency){
$currencyCode = $currency->getAttribute('CurrencyCode');
$this->currencies[$currencyCode] = $this->getCurrencyData($currency, $currencyCode);
}
}
private function getCurrencyData(DOMNode $currency, $currencyCode){
$currencyData = array('CurrencyCode' => $currencyCode);
foreach($currency->childNodes as $node){
$currencyData[$node->nodeName] = $node->nodeValue;
}
$currencyData['crossRate'] = $this->getCrossRateData($currencyCode,
$currencyData['CrossRateUSD'], $currencyData['CrossRateOther']);
return $currencyData;
}
private function getCrossRateData($currencyCode, $crossRateUSD, $crossRateOther){
$crossRateType = empty($crossRateUSD) ?
$currencyCode.'/USD' : 'USD/'.$currencyCode;
$crossRate = empty($crossRateUSD) ? $crossRateOther : $crossRateUSD;
return array('type' => $crossRateType, 'rate' => $crossRate);
}
public function getAll(){
return $this->currencies;
}
public function get($currencyCode){
return $this->currencies[$currencyCode] ?: 'Döviz yok.';
}
public function getAllCrossRates(){
return array_map(function($currency){
return $currency['crossRate'];
}, $this->currencies);
}
public function getCrossRate($currencyCode){
return $this->currencies[$currencyCode]['crossRate'];
}
}
?>