İçeriğe geç
Altın fiyatlarını Altınkaynak yeni soap web servisinden xml ile çekme

Altın fiyatlarını Altınkaynak yeni soap web servisinden xml ile çekme

Altınkaynak xml verisi çekme işlemleri

Altınkaynak web sitesi daha önce xml ile sunduğu verileri iptal ederek şimdi yeni soap web servisi ile kullanıcı adı ve şifrelerini vererek soap servisinin hizmete girdiğini duyurdu. Altın fiyatlarını Altınkaynak soap servisinden xml ile çekmek için aşağıdaki php kodlarını kullanacağız.Kullanacağımız metod GetGold.

altınkaynak xml
altınkaynak xml

XML çıktısı veren dosya kodları

Altin_xml.php adlı bir dosya oluşturalım ve kodları yazalım.

<?php 
Username = 'AltinkaynakWebServis';
$auth->Password = 'AltinkaynakWebServis';

$header = new SoapHeader('http://data.altinkaynak.com/', 'AuthHeader', $auth, false);
$client->__setSoapHeaders($header);

$veri = $client->GetGold();

$xml = simplexml_load_string($veri->GetGoldResult);

header('Content-type: text/xml');
echo "\n";
echo "";
 
$xml_yaz .= "
                          ".$xml->Kur[0]->Kod."
                ".$xml->Kur[0]->Alis."
                          ".$xml->Kur[0]->Satis."
                  \n
        
                          ".$xml->Kur[1]->Kod."
           ".$xml->Kur[1]->Alis."
                          ".$xml->Kur[1]->Satis."
                  \n
        
                          ".$xml->Kur[2]->Kod."
           ".$xml->Kur[2]->Alis."
                          ".$xml->Kur[2]->Satis."
                  \n
        
                          ".$xml->Kur[3]->Kod."
           ".$xml->Kur[3]->Alis."
                          ".$xml->Kur[3]->Satis."
                  \n
        
                          ".$xml->Kur[4]->Kod."
           ".$xml->Kur[4]->Alis."
                          ".$xml->Kur[4]->Satis."
                  \n
        
                          ".$xml->Kur[5]->Kod."
           ".$xml->Kur[5]->Alis."
                          ".$xml->Kur[5]->Satis."
                  \n
        
                          ".$xml->Kur[6]->Kod."
           ".$xml->Kur[6]->Alis."
                          ".$xml->Kur[6]->Satis."
                  \n
        
                          ".$xml->Kur[7]->Kod."
           ".$xml->Kur[7]->Alis."
                          ".$xml->Kur[7]->Satis."
                  \n
        
                          ".$xml->Kur[8]->Kod."
           ".$xml->Kur[8]->Alis."
                          ".$xml->Kur[8]->Satis."
                  \n
        
                          ".$xml->Kur[9]->Kod."
           ".$xml->Kur[9]->Alis."
                          ".$xml->Kur[9]->Satis."
                  \n
        
                          ".$xml->Kur[10]->Kod."
           ".$xml->Kur[10]->Alis."
                          ".$xml->Kur[10]->Satis."
                  \n
        
                          ".$xml->Kur[11]->Kod."
           ".$xml->Kur[11]->Alis."
                          ".$xml->Kur[11]->Satis."
                  \n
 
                          ".$xml->Kur[12]->Kod."
           ".$xml->Kur[12]->Alis."
                          ".$xml->Kur[12]->Satis."
                  \n
 
                          ".$xml->Kur[13]->Kod."
           ".$xml->Kur[13]->Alis."
                          ".$xml->Kur[13]->Satis."
                  \n
 
                          ".$xml->Kur[14]->Kod."
           ".$xml->Kur[14]->Alis."
                          ".$xml->Kur[14]->Satis."
                  \n
 
                          ".$xml->Kur[15]->Kod."
           ".$xml->Kur[15]->Alis."
                          ".$xml->Kur[15]->Satis."
                  \n";

 
;
 
$xml_yaz .= "\n";
 
echo $xml_yaz;
?>

Bu dosyanın çıktısı xml fiyat sayfasıdır. Aslında önerilen şey her seferinde bu dosyayı çağırmak yerine yerel olarak verilerin belleğe alınmasıdır. Bu da sitenin erişim hızını artıracaktır.Bunu için aşağıdaki kodları kullanabiliriz.

XML dosyasını önbelleğe alıp işleme

<?php
$saatg = date("G");
$bugun = date("z");
$dun = date("z") - 1;
$guncelleme = 3600*12; // 24 saat
$cache_altin = $_SERVER['DOCUMENT_ROOT'].'/dosya-yolu/altinkur'.$saatg.$bugun.'.rss';
$timedif_altin = @(time() - filemtime($cache_altin));
if (file_exists($cache_altin) && $timedif_altin < $guncelleme) {
$string_altin = file_get_contents($cache_altin);
} else {
$string_altin = file_get_contents('http://domain.com/Altin_xml.php');
    if ($af = @fopen($cache_altin, 'w')) {
        fwrite ($af, $string_altin, strlen($string_altin));
        fclose($af);
    }
}
$xml_altin = simplexml_load_string($string_altin);
$altin22a = $xml_altin->KUR[5]->ALIS;
$altin22s = $xml_altin->KUR[5]->SATIS;
$altinataa = $xml_altin->KUR[12]->ALIS;
$altinatas = $xml_altin->KUR[12]->SATIS;
$altincea = $xml_altin->KUR[8]->ALIS;
$altinces = $xml_altin->KUR[8]->SATIS;
$altinyaa = $xml_altin->KUR[9]->ALIS;
$altinyas = $xml_altin->KUR[9]->SATIS;
$altintaa = $xml_altin->KUR[10]->ALIS;
$altintas = $xml_altin->KUR[10]->SATIS;
$altinhasa = $xml_altin->KUR[15]->ALIS;
$altinhass = $xml_altin->KUR[15]->SATIS;
?>

Burada yaptığımız sorguyu yerel serverda bir rss dosyası olarak kaydettik.Bundan sonraki sorgulamalarda yerel dosya kullanılacak, bu da hız demek.Kodlara bu dosyanın hangi aralıklarla ve hangi isimle yazılacağını istediğimiz gibi ekliyoruz.

Paylaş :

“Altın fiyatlarını Altınkaynak yeni soap web servisinden xml ile çekme” hakkında 1 yorum

Bir yanıt yazın

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