Bu örneğimizde, simplexml_load_string yöntemini kullanarak TCMB, XML kaynağı üzerinden döviz kurlarını alıyoruz.
Önce doviz bilgilerini alacak ve işleyecek olan fonksiyonumuzu yazalım.
doviz.php
kodlar.
<?php
date_default_timezone_set('Europe/Istanbul');
function modul_doviz() {
$saat = date('Hi',time());
// URL VE YOLLAR
$dir = str_replace('\\','/', pathinfo(__FILE__, PATHINFO_DIRNAME ) ).'/';
// doviz XML Yolu
$d_url = 'http://tcmb.gov.tr/kurlar/today.xml';
$ctx=stream_context_create(array('http'=>
array(
'timeout' => 3 // 3 saniye
)
));
// Lokal XML dosya yolumuz
$file_xml = $dir.'doviz.xml';
$obj = (object) null; // nesne degiskeni olusturuyoruz
$bugun = date('d.m.Y', time()); // dunku tarihi buluyoruz
$szaman = date('d.m.Y', time()-86400); // dunku tarihi buluyoruz
// eger xml dosyamizin tarihi dune esit degil ve ya saat 15:30 - 16:00 arasi ise
if( !file_exists( $file_xml) OR date('d.m.Y',filemtime($file_xml)) != $bugun OR ($saat < 1600 && $saat > 1530 ) ) {
$al = file_get_contents($d_url,false,$ctx);
if($al !== false ) {
file_put_contents($file_xml,$al);
$xml = simplexml_load_string($al);
$obj->zaman = $xml->attributes()->Tarih;
} else {
$okuma_hatasi = true;
}
} else {
$al = file_get_contents($file_xml);
if($al === false ) {
$okuma_hatasi = true;
}
}
if(!isset($okuma_hatasi)) {
$xml = simplexml_load_string($al); // dosyamizi okuyoruz
$obj->zaman = $xml->attributes()->Tarih; // dosyamizda kur tarihini okuyoruz
$obj->dolar_alis = $xml->Currency[0]->ForexBuying;
$obj->dolar_satis = $xml->Currency[0]->ForexSelling;
$obj->euro_alis = $xml->Currency[11]->ForexBuying;
$obj->euro_satis = $xml->Currency[11]->ForexSelling;
$obj->frank_alis = $xml->Currency[5]->ForexBuying;
$obj->frank_satis = $xml->Currency[5]->ForexSelling;
}
return $obj;
}
include $dir.'doviz.tmp.php';
Bundan sonrası artık Temamızda ( <?php $obj = modul_doviz()?> ) fonksiyonu çağırmaktır.
Örneğimizde ayrıca array değişken yerine $obj değişkeni üzerinden, nesne(object) değişken kullanımına da örnek vermiş oldum.
Tema dosyası içeriğini buraya almayacağım, zira vereceğim örnekte tema dosyaı olacağı gibi, indireceğiniz örnek dosya at->çalışsın biçimindedir.
Demoyu incelemek için tıklayın Uygulamayı indirmek için tıklayın
2 Yorum
Önceki temadan kalmış, editör içinden class girmiştim, sağol 🙂
buttonlardaki shadowu kaldır okunmuyo düzgün butonların 😀