php tcmb döviz kurları

tcmb.gov.tr den döviz kurları almak için kullanılabilir 2 fonksiyon ile oluşan bir işlem bütünü. 1 function geturl bu metodu yazarken biraz esnek tuuttum belki başka işlemleriniz içinde kullanabileceğinizi düşündüğüm için post ile ver gönderimide ilave ettim. Döviz işlemi için gerekli değil. 2 function ise DovizKuruAl metodu aslında bizi bağlayan ve kullanacağımız metod bu kendi içerisinde geturl metodunu çağırıyor isteyenler iki metodu birleştirip tek metod yapabilir.

function getUrl($url, $method='', $vars='') {
    $ch = curl_init();
    //$header[] = "REMOTE_ADDR: 173.194.70.100"; //google ip adresi
    //$header[] = "HTTP_X_FORWARDED_FOR: 173.194.70.100"; //google ip adresi
    $header[] = "ACCEPT: ".$_SERVER['HTTP_ACCEPT'];

    if ($method == 'post') {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
    }
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1);
    curl_setopt($ch, CURLOPT_SSLVERSION, 3);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);
    //curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE);
    //curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIE);
    $buffer = curl_exec($ch);
    curl_close($ch);
    return $buffer;
}

/**
 * usd ve euro tl bilgileri tcmb.gov.tr
 * @param string $CekilenKurlar
 * @return array
 */
function DovizKuruAl($CekilenKurlar='USD,EUR') {

    $istenenler = explode(',',$CekilenKurlar);
    $return = array();

    $XMLBugun = getUrl("http://www.tcmb.gov.tr/kurlar/today.xml");
    $BugunkuKurlar = simplexml_load_string($XMLBugun);
    $tmp = get_object_vars($BugunkuKurlar);
    $Currency = $tmp['Currency'];
    if(is_array($Currency)){
            foreach($Currency as $c){
                $b = get_object_vars($c);
                $b = array_values($b);
                if(!in_array($b[0]['CurrencyCode'],$istenenler)){
                    continue;
                }
                $return[$b[0]['CurrencyCode']] = array("durum"=>$b[1],"Alis"=>$b[4],"Satis"=>$b[5]);
            }
        }
    return $return;
}

Döviz kurlarını almak için

$kurlar = $this->DovizKuruAl();
print_r($kurlar); 

çıkti olarak

Array
(
    [USD] => Array
        (
            [durum] => 1
            [Alis] => 2.2358
            [Satis] => 2.2398
        )

    [EUR] => Array
        (
            [durum] => 1
            [Alis] => 2.7618
            [Satis] => 2.7668
        )

)

Search Here