Tcmb doviz kuru çekerken istek zaman aşımına uğruyor?
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.