v2.5.2
Giriş yap

Tcmb doviz kuru çekerken istek zaman aşımına uğruyor?

aydinkeskin
669 defa görüntülendi

kurları çekerken
web sitesi request time out a düşüyor

bu durumu nasıl aşabilirim.
yaptığım fonksiyon aşağıdaki gibi.

<?php
function curlAl($url){ 
	$ch = curl_init(); 
	curl_setopt($ch, CURLOPT_URL, $url); 
	curl_setopt($ch, CURLOPT_HEADER, 0); 
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); 
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
	curl_setopt($ch, CURLOPT_REFERER,'http://www.google.com.tr'); 
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1'); 
	$exec = curl_exec($ch); 
	curl_close($ch); 
	return $exec; 
}
 
function dovizKurlariGelsin() { 
	$sonuc = array(); 
	$bir = curlAl('https://www.tcmb.gov.tr/kurlar/today.xml'); 
	$xml = simplexml_load_string($bir);
	foreach($xml as $i => $k) {
 
		$kurKodua = $k->attributes();
		$kurKodu = $k->Currency;
		if($kurKodu != 'XDR') {
            $sonuc[] = array(
				'kur' => (string)$kurKodua->Kod, 
				'adi' => (string)$k->Isim, 
				'alis' => (string)$k->ForexBuying, 
				'satis' => (string)$k->ForexSelling,
				);
		}
	}
	return $sonuc;
}

function KurCek( int $key,  string $tur, string $alis){
	$kurlar = dovizKurlariGelsin();
	$birim = [
		'USD' => 'ABD DOLARI',
		'AUD' => 'AVUSTRALYA DOLARI',
		'DKK' => 'DANİMARKA KRONU',
		'EUR' => 'EURO',
		'GBP' => 'İNGİLİZ STERLİNİ',
		'CHF' => 'İSVİÇRE FRANGI',
		'SEK' => 'İSVEÇ KRONU',
		'CAD' => 'KANADA DOLARI',
		'KWD' => 'KUVEYT DİNARI',
		'NOK' => 'NORVEÇ KRONU',
		'SAR' => 'SUUDİ ARABİSTAN RİYALİ',
		'JPY' => 'JAPON YENİ',
		'BGN' => 'BULGAR LEVASI',
		'RON' => 'RUMEN LEYİ',
		'RUB' => 'RUS RUBLESİ',
		'IRR' => 'İRAN RİYALİ',
		'CNY' => 'ÇİN YUANI',
		'PKR' => 'PAKİSTAN RUPİSİ',
	];
	
	if($kurlar[$key]["adi"] == $birim[$tur])	return $kurlar[$key][$alis];
}

	$dolar		= KurCek("0","USD","satis");
	$euro		= KurCek("3","EUR","satis");

?>

normalde sorunsuz çekiyor ama bazen bir takıldımı takılıyor.

bunun önüne nasıl geçebilirim acaba.