<?php
header('Content-Type: application/json; charset=utf-8');
date_default_timezone_set('Europe/Istanbul');
$kaynak = 'https://www.tcmb.gov.tr/kurlar/today.xml';
$opts = [
    "http" => [
        "method" => "GET",
        "header" => "User-Agent: Mozilla/5.0\r\n",
        "timeout" => 10
    ]
];
$context = stream_context_create($opts);
$veri = @file_get_contents($kaynak, false, $context);
if ($veri === false) {
    $ch = curl_init($kaynak);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
    $veri = curl_exec($ch);
    $err = curl_error($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if ($veri === false || $httpCode >= 400) {
        http_response_code(502);
        echo json_encode(['hata' => 'Kaynak alınamadı', 'detay' => $err ?: 'HTTP '.$httpCode], JSON_UNESCAPED_UNICODE);
        exit;
    }
}
libxml_use_internal_errors(true);
$xml = simplexml_load_string($veri);
if ($xml === false) {
    http_response_code(502);
    echo json_encode(['hata' => 'XML parse hatası'], JSON_UNESCAPED_UNICODE);
    exit;
}
$kurlar = [];
$tarih = (string)$xml['Date'] ?: date('Y-m-d');
foreach ($xml->Currency as $c) {
    $kod = (string)$c['CurrencyCode'];
    $isim = (string)$c->Isim;
    $unit = (int)$c->Unit;
    $forexAlis = (string)$c->ForexBuying;
    $forexSatis = (string)$c->ForexSelling;
    $efectifAlis = (string)$c->BanknoteBuying;
    $efectifSatis = (string)$c->BanknoteSelling;
    $cross = (string)$c->CrossRateOther;
    $kurlar[$kod] = [
        'isim' => $isim,
        'birim' => $unit,
        'forex_alis' => $forexAlis === '' ? null : (float)str_replace(',', '.', $forexAlis),
        'forex_satis' => $forexSatis === '' ? null : (float)str_replace(',', '.', $forexSatis),
        'efectif_alis' => $efectifAlis === '' ? null : (float)str_replace(',', '.', $efectifAlis),
        'efectif_satis' => $efectifSatis === '' ? null : (float)str_replace(',', '.', $efectifSatis),
        'cross' => $cross === '' ? null : (float)str_replace(',', '.', $cross)
    ];
}
$sonuc = [
    'tarih' => $tarih,
    'kaynak' => 'tcmb',
    'olusturma' => date('c'),
    'kurlar' => $kurlar
];
echo json_encode($sonuc, JSON_UNESCAPED_UNICODE | JSON_PRESERVE_ZERO_FRACTION);
Response:

{ "tarih": "11/06/2025", "kaynak": "tcmb", "olusturma": "2025-11-06T20:37:38+03:00", "kurlar": { "USD": { "isim": "ABD DOLARI", "birim": 1, "forex_alis": 42.0426, "forex_satis": 42.1183, "efectif_alis": 42.0132, "efectif_satis": 42.1815, "cross": null }, "AUD": { "isim": "AVUSTRALYA DOLARI", "birim": 1, "forex_alis": 27.3078, "forex_satis": 27.4859, "efectif_alis": 27.1822, "efectif_satis": 27.6508, "cross": null }, "DKK": { "isim": "DANİMARKA KRONU", "birim": 1, "forex_alis": 6.4738, "forex_satis": 6.5056, "efectif_alis": 6.4692, "efectif_satis": 6.5205, "cross": null }, "EUR": { "isim": "EURO", "birim": 1, "forex_alis": 48.4068, "forex_satis": 48.494, "efectif_alis": 48.3729, "efectif_satis": 48.5668, "cross": 1.1514 }, "GBP": { "isim": "İNGİLİZ STERLİNİ", "birim": 1, "forex_alis": 54.8796, "forex_satis": 55.1657, "efectif_alis": 54.8412, "efectif_satis": 55.2485, "cross": 1.3076 }, "CHF": { "isim": "İSVİÇRE FRANGI", "birim": 1, "forex_alis": 51.8484, "forex_satis": 52.1813, "efectif_alis": 51.7707, "efectif_satis": 52.2596, "cross": null }, "SEK": { "isim": "İSVEÇ KRONU", "birim": 1, "forex_alis": 4.3875, "forex_satis": 4.4329, "efectif_alis": 4.3844, "efectif_satis": 4.4431, "cross": null }, "CAD": { "isim": "KANADA DOLARI", "birim": 1, "forex_alis": 29.7791, "forex_satis": 29.9134, "efectif_alis": 29.6689, "efectif_satis": 30.0271, "cross": null }, "KWD": { "isim": "KUVEYT DİNARI", "birim": 1, "forex_alis": 136.1121, "forex_satis": 137.8931, "efectif_alis": 134.0704, "efectif_satis": 139.9615, "cross": 3.2557 }, "NOK": { "isim": "NORVEÇ KRONU", "birim": 1, "forex_alis": 4.1177, "forex_satis": 4.1454, "efectif_alis": 4.1148, "efectif_satis": 4.1549, "cross": null }, "SAR": { "isim": "SUUDİ ARABİSTAN RİYALİ", "birim": 1, "forex_alis": 11.2102, "forex_satis": 11.2304, "efectif_alis": 11.1261, "efectif_satis": 11.3146, "cross": null }, "JPY": { "isim": "JAPON YENİ", "birim": 100, "forex_alis": 27.2782, "forex_satis": 27.4588, "efectif_alis": 27.1773, "efectif_satis": 27.5632, "cross": null }, "BGN": { "isim": "BULGAR LEVASI", "birim": 1, "forex_alis": 24.6122, "forex_satis": 24.9343, "efectif_alis": null, "efectif_satis": null, "cross": null }, "RON": { "isim": "RUMEN LEYİ", "birim": 1, "forex_alis": 9.466, "forex_satis": 9.5899, "efectif_alis": null, "efectif_satis": null, "cross": null }, "RUB": { "isim": "RUS RUBLESİ", "birim": 1, "forex_alis": 0.51496, "forex_satis": 0.5217, "efectif_alis": null, "efectif_satis": null, "cross": null }, "CNY": { "isim": "ÇİN YUANI", "birim": 1, "forex_alis": 5.87, "forex_satis": 5.9468, "efectif_alis": null, "efectif_satis": null, "cross": null }, "PKR": { "isim": "PAKİSTAN RUPİSİ", "birim": 1, "forex_alis": 0.14785, "forex_satis": 0.14979, "efectif_alis": null, "efectif_satis": null, "cross": null }, "QAR": { "isim": "KATAR RİYALİ", "birim": 1, "forex_alis": 11.4704, "forex_satis": 11.6205, "efectif_alis": null, "efectif_satis": null, "cross": null }, "KRW": { "isim": "GÜNEY KORE WONU", "birim": 1, "forex_alis": 0.02888, "forex_satis": 0.02926, "efectif_alis": null, "efectif_satis": null, "cross": null }, "AZN": { "isim": "AZERBAYCAN YENİ MANATI", "birim": 1, "forex_alis": 24.5923, "forex_satis": 24.9141, "efectif_alis": null, "efectif_satis": null, "cross": null }, "AED": { "isim": "BİRLEŞİK ARAP EMİRLİKLERİ DİRHEMİ", "birim": 1, "forex_alis": 11.3827, "forex_satis": 11.5317, "efectif_alis": null, "efectif_satis": null, "cross": null }, "KZT": { "isim": "KAZAKİSTAN TENGESİ", "birim": 1, "forex_alis": 0.0794, "forex_satis": 0.08044, "efectif_alis": null, "efectif_satis": null, "cross": null }, "XDR": { "isim": "ÖZEL ÇEKME HAKKI (SDR) ", "birim": 1, "forex_alis": 57.0646, "forex_satis": null, "efectif_alis": null, "efectif_satis": null, "cross": 1.35608 } } }
  • AliYucel
  • MetropolWeb
  • SEOKOZ
AliYucel, MetropolWeb, SEOKOZ ve 2 kişi bunu beğendi.
5 kişi bunu beğendi.