<?php

// Session başlatma kontrolü
session_start();

if (!empty($_GET["kur"])) {
$_SESSION["kur"] = $_GET["kur"];
}

if (!isset($_SESSION["kur"])) {
$_SESSION["kur"] = "TRY";
}

function Altinkaynak($deger)
{
try {
$client = new SoapClient('http://data.altinkaynak.com/DataService.asmx?WSDL', array('connection_timeout' => 5));
$auth = new stdClass();
$auth->Username = 'AltinkaynakWebServis';
$auth->Password = 'AltinkaynakWebServis';
$header = new SoapHeader('http://data.altinkaynak.com/', 'AuthHeader', $auth, false);
$client->__setSoapHeaders($header);

// Altın kurları
$response = $client->GetCurrency();
$xml = simplexml_load_string($response->GetCurrencyResult);

// Dolar kurları
return $xml->Kur[$deger]->Satis;
} catch (Exception $e) {
// SOAP hatası oluştuğunda işlem yapılabilir.
// echo "Soap Hatasi Olustu: " . $e->getMessage();
return null;
}
}

function CanliDoviz($deger)
{
$jsonVeri = @file_get_contents("https://canlidoviz.com/doviz-kurlari.jsonld");

if ($jsonVeri === false) {
// Hata durumu
return null;
}

$veri = json_decode($jsonVeri, true);
$response = $veri["mainEntity"]["itemListElement"];

return $response[$deger]["currentExchangeRate"]["price"] ?? null;
}

function TCMBDoviz($deger, $alis = null)
{
$veri = simplexml_load_file('http://www.tcmb.gov.tr/kurlar/today.xml');

if ($veri === false) {
// Hata durumu
return null;
}

$icerik = $veri->Currency;
$ForexAlis = $icerik[$deger]->ForexBuying ?? null;
$ForexSatis = $icerik[$deger]->ForexSelling ?? null;
$BankaAlis = $icerik[$deger]->BanknoteBuying ?? null;
$BankaSatis = $icerik[$deger]->BanknoteSelling ?? null;

if ($alis === "") {
return $BankaSatis;
} elseif ($alis === "satis") {
return $BankaSatis;
} elseif ($alis === "alis") {
return $BankaAlis;
}

return null;
}

function TruncGil($key, $alis)
{
$jsonVeri = @file_get_contents("https://finans.truncgil.com/today.json");

if ($jsonVeri === false) {
// Hata durumu
return null;
}

$veri = json_decode($jsonVeri, true);
$birim = [
'USD' => 'ABD DOLARI',
'EUR' => 'EURO',
];

return $veri[$birim[$key]][$alis] ?? null;
}

// Zaman kontrolü ve döviz değerlerini algoritması
if (time() > ($_SESSION['doviz_cooldown'] ?? 0)) {
unset($_SESSION['dolar']);
unset($_SESSION['euro']);
unset($_SESSION['doviz_cooldown']);

$dolar = $euro = null;

if (($value = CanliDoviz(0)) !== null) {
$dolar = round($value, 2);
$euro = round(CanliDoviz(1), 2);
} elseif (($value = Altinkaynak(0)) !== null) {
$dolar = round($value, 2);
$euro = round(Altinkaynak(1), 2);
} elseif (($value = TCMBDoviz(0)) !== null) {
$dolar = round($value, 2);
$euro = round(TCMBDoviz(3), 2);
} elseif (($value = TruncGil("USD", "Alış")) !== null) {
$dolar = round($value, 2);
$euro = round(TruncGil("EUR", "Satış"), 2);
}

$_SESSION['doviz_cooldown'] = time() + 900;
$_SESSION['dolar'] = $dolar;
$_SESSION['euro'] = $euro;
} else {
$dolar = $_SESSION['dolar'] ?? null;
$euro = $_SESSION['euro'] ?? null;
}

function kur($value, $value2)
{
if ($value2 == "EUR") {
return $value . " EUR";
} elseif ($value2 == "USD") {
return "$" . $value;
} elseif ($value2 == "TRY") {
return $value . " TL";
}

return null;
}

?>