• 20-04-2021, 20:57:18
    #1
    Merhabalar. PHP'de oldukça amatörüm. TCMB'den dolar ve euro'nun efektif alış ve satışını nasıl çekebilirim sayfama?

    Çekmem gereken sayfa: https://www.tcmb.gov.tr/kurlar/today.xml

    GitHub'da paylaşan Türk arkadaşlar buldum ama composer vesaire hiç anlamadığım için yapamadım açıkcası. cPanel'de çalışan bir PHP projem var. Basit şekilde almak istiyorum.

    Teşekkür ederim.
  • 20-04-2021, 21:19:17
    #2
    Üyeliği durduruldu
    // Önce curl kullanarak XML verisini değişkene atıyoruz
    $ch = curl_init('https://www.tcmb.gov.tr/kurlar/today.xml');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $xml_data = curl_exec($ch);
    
    // XML verisini PHP array'ına çeviriyoruz
    $xml_data = json_encode(simplexml_load_string($xml_data, 'SimpleXMLElement', LIBXML_NOCDATA));
    $xml_data = json_decode($xml_data, true);
    
    // Burada yaptığımız işlem biraz karışık, 'CurrencyName' değeri 'US DOLLAR' olan satırı çekiyoruz
    $us_dollar = array_filter($xml_data['Currency'], function($e) {return $e['CurrencyName'] == 'US DOLLAR';});
    $us_dollar = $us_dollar[array_key_first($us_dollar)];
    $usd_alis = $us_dollar['BanknoteBuying'];
    $usd_satis = $us_dollar['BanknoteSelling'];
    
    // Yukarıdakinin aynısını 'EURO' için yapıyoruz
    $euro = array_filter($xml_data['Currency'], function($e) {return $e['CurrencyName'] == 'EURO';});
    $euro = $euro[array_key_first($euro)];
    $euro_alis = $euro['BanknoteBuying'];
    $euro_satis = $euro['BanknoteSelling'];
    
    print 'USD Alış => '.$usd_alis.' | USD Satış => '.$usd_satis . '<br>';
    print 'EUR Alış => '.$euro_alis.' | EUR Satış => '.$euro_satis;