simplexml_load_string Döviz Kuru Almak

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

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir