»Kullanıcı: »Şifre: Beni hatırla?
Beles.Org / Teknoloji / Kod Paylaşımı / Php ile Döviz Kurları


Php ile Döviz Kurları:




Yazdı:  29 Jan 2006 19:53   Son düzenlenme: osman
Kod:


<?
error_reporting(E_ALL);
function tcmb($bakilacak,$site){
$dosya = @fopen($site, "r");
if ($dosya) {
$geldi = false;
while(!feof($dosya)) {

$satir = fgets($dosya,512);
$code = substr($satir, 0, 3);
if (($code == $bakilacak) && ($geldi == false)) {
$geldi = true;
$sonuc = split("[[:space:]]+" , $satir);
$doviz[1] = substr($sonuc[4], 0, 9);
$doviz[2] = substr($sonuc[5], 0, 9);
$doviz[3] = substr($sonuc[6], 0, 9);
$doviz[4] = substr($sonuc[7], 0, 9);
}

} // while
return $doviz;
} // if($dosya)
}// function

$usd_doviz = tcmb('USD','http://www.tcmb.gov.tr/kurlar/today.html');
$eur_doviz = tcmb('EUR','http://www.tcmb.gov.tr/kurlar/today.html');
$gbp_doviz = tcmb('GBP','http://www.tcmb.gov.tr/kurlar/today.html');

?>

<table>

<tr align="center">
<td><font size="1" face="verdana" color="red"><b>USD Alış</b></font></td>
<td><font size="1" face="verdana" color="red"><b>USD Satış</b></font></td>
<td><font size="1" face="verdana" color="red"><b>EURO Alış</b></font></td>
<td><font size="1" face="verdana" color="red"><b>EURO Satış</b></font></td>
<td><font size="1" face="verdana" color="red"><b>Sterlin Alış</b></font></td>
<td><font size="1" face="verdana" color="red"><b>Sterlin Satış</b></font></td>
<tr>

<tr align="center">
<td><font size="1" face="arial"><?=$usd_doviz[3];?></font></td>
<td><font size="1" face="arial"><?=$usd_doviz[4];?></font></td>
<td><font size="1" face="arial"><?=$eur_doviz[3];?></font></td>
<td><font size="1" face="arial"><?=$eur_doviz[4];?></font></td>
<td><font size="1" face="arial"><?=$gbp_doviz[3];?></font></td>
<td><font size="1" face="arial"><?=$gbp_doviz[4];?></font></td>
<tr>

</table>
Yazdı:  06 Mar 2008 13:48
Aşağıdaki script döviz kurlarını siteden günde sadece 1 kere ve tek bağlantı ile çekiyor. Örnek olarak çok farklı dosyalara, tablolara ve ekrana basabiliyor. İsterseniz belirtilen variablelari kullanarak veritabanına da kayıt yaptırabilirsiniz.


<?php
/************************************************************************************/
/****** Gunde Bir Defa Olmak Uzere tcmb.gov.tr ye Baglanacak, Kurlari Bir Dosyaya ***/
/****** (today.xml) yazacak, Islemleri Oradan Yapacak                             ***/
/************************************************************************************/

  $gun = date('d');
  $ay = date('m');
  $yil = date('y');
  $saat=date('G');
  $dakika=date('i'); 
  $bugun = mktime(0,0,0,$ay,$gun,$yil,0);
  echo $gun." ".$ay." ".$yil." ".$saat." ".$dakika."<br>";
  if(file_exists("day.txt")) {
    $f=fopen("day.txt","r");
        $gecmisgun = trim(fgets($f, 1024));
        $gecmisay = trim(fgets($f, 1024));
    $gecmisyil = trim(fgets($f, 1024));
    fclose($f);
    $dun = mktime(0,0,0,$gecmisay,$gecmisgun,$gecmisyil);           
    if($bugun > $dun && (($saat >= 16 && $dakika >= 30) || $saat >= 17)) {
            copy("http://www.tcmb.gov.tr/kurlar/today.xml","today.xml");
        $f=fopen("day.txt","w");
        fwrite($f, date("d\nm\ny"));
        fclose($f);   
    }
  } else {
    copy("http://www.tcmb.gov.tr/kurlar/today.xml","today.xml");
    $f=fopen("day.txt","w");
    fwrite($f, date("d\nm\ny", time()-86400));
    fclose($f);
  }       

/************************************************************************************/
/****** today.xml Dosyasi Icerisinde Bulunan Kur Kodlari ****************************/
/************************************************************************************/

  $kurkodlari = array(
    "USD" => "AMERIKAN DOLARI",
        "CAD" => "KANADA DOLARI",
    "DKK" => "DANIMARKA KRONU",    
    "SEK" => "ISVEÇ KRONU",    
    "CHF" => "ISVIÇRE FRANGI",    
    "NOK" => "NORVEÇ KRONU",    
    "JPY" => "JAPON YENI",    
    "SAR" => "SUUDI ARAB. RIYALI",    
    "KWD" => "KUVEYT DINARI",    
    "AUD" => "AV. DOLARI",    
    "EUR" => "EURO",    
    "GBP" => "STERLIN",    
    "RON" => "YENI RUMEN LEYI",    
    "IRR" => "IRAN RIYALI",    
    "SYP" => "SURIYE LIRASI",    
    "JOD" => "ÜRDÜN DINARI",    
    "BGL" => "BULGAR LEVASI",    
    "ILS" => "ISRAIL SEKELI",    
  );

/************************************************************************************/
/****** today.xml Dosyasi Icerisinde Bulunan Xml Tagleri ****************************/
/************************************************************************************/

  $xmlalanlari = array(
     "Unit" => "Birim",
     "Isim" => "Isim",
     "ForexBuying" => "DovizAlis",
     "ForexSelling" => "DovizSatis",
     "BanknoteBuying" => "EfektifAlis",
     "BanknoteSelling" => "EfektifSatis",    
     );

/************************************************************************************/
/****** today.xml Dosyasini Cekiyor ve $kurdosyasi Parametresine Esitliyoruz ********/
/************************************************************************************/
 
  $kurdosyasi = file_get_contents("today.xml");

/************************************************************************************/
/****** Burada Ilgili Kurlarin Aciklanis Tarihlerini Aliyoruz ***********************/
/************************************************************************************/
  preg_match("'<Tarih_Date Tarih=\"(.*)\" Date=\"(.*)\">'Uis",$kurdosyasi,$tarih);
  $tarih = date("d-m-y",strtotime($tarih[2]));

/************************************************************************************/
/****** Burada $xmlalanlari Adli Degiskeni Tarayip, Kurlari $kurlar Adli Bir ********/
/****** Arrayde Topluyoruz **********************************************************/
/************************************************************************************/

  foreach($kurkodlari as $kod => $dummy){
     foreach($xmlalanlari as $alanadi => $alanaditurkce){
    preg_match("'<Currency Kod=\"(".$kod.")\".*><".$alanadi.">(.*)</".$alanadi.">(.*)</Currency>'Uis",$kurdosyasi,$deger);
    $kurlar[$kod][$alanaditurkce] = $deger[2];
    }
     }

/************************************************************************************/
/******************************* ORNEKLER *******************************************/
/************************************************************************************/

/************************************************************************************/
/****** Ornek Teskil Etmesi Acisindan Degerleri Ekrana Bastiriyoruz *****************/
/****** Istediginiz Kura (or: Dolar Alis Kuru) $kurlar['USD']['DovizAlis'] **********/
/****** Seklinde Ulasabilirsiniz ****************************************************/
/************************************************************************************/

  echo $tarih." TARIHLI DOVIZ KURLARI"."<br>";
  foreach($kurkodlari as $kod => $dummy){
             echo "----------------------------".$kurlar[$kod]['Birim']." ".$kurlar[$kod]['Isim']." ----------------------------"."<br>";
                echo "Doviz Alis: ".$kurlar[$kod]['DovizAlis']."<br>";
                echo "Doviz Satis: ".$kurlar[$kod]['DovizSatis']."<br>";
                echo "Efektif Doviz Alis: ".$kurlar[$kod]['EfektifAlis']."<br>";
                echo "Efektif Doviz Satis: ".$kurlar[$kod]['EfektifSatis']."<br>";
     }

/************************************************************************************/
/****** Ornek Teskil Etmesi Acisindan Iki Tane Dosyaya Kurlar Tarihli ve ************/
/****** Kur Ismini Tasiyacak Sekilde Yazilmistir (or: 14-02-2008-USD.txt) ***********/
/************************************************************************************/
       
    $f=fopen($tarih."-USD.txt","w");
        fwrite($f,$kurlar['USD']['DovizAlis']." ");
        fwrite($f,$kurlar['USD']['DovizSatis']);
        fclose($f);

    $f=fopen($tarih."-EUR.txt","w");
    fwrite($f,$kurlar['EUR']['DovizAlis']." ");
        fwrite($f,$kurlar['EUR']['DovizSatis']);
    fclose($f);

/************************************************************************************/
/****** Ornek Teskil Etmesi Acisindan Dolar ve Euro Kurlari Tablo *******************/
/****** Haline Getirilip kurlar.html Seklinde Yazilmistir ***************************/
/************************************************************************************/

        $f=fopen("kurlar.html","w");
        $table = "<table border=\"1\">";
    $table = $table . "<tr><td align=\"center\" colspan=\"2\">Kurlar</td></tr>";
    $table = $table . "<tr><td colspan=\"2\">USD</td></tr>";
    $table = $table . "<tr><td>Alis</td><td>".$kurlar['USD']['DovizAlis']."</td></tr>";
        $table = $table . "<tr><td>Satis</td><td>".$kurlar['USD']['DovizSatis']."</td></tr>"; 

        $table = $table . "<tr><td colspan=\"2\">EUR</td></tr>";
        $table = $table . "<tr><td>Alis</td><td>".$kurlar['EUR']['DovizAlis']."</td></tr>";
        $table = $table . "<tr><td>Satis</td><td>".$kurlar['EUR']['DovizSatis']."</td></tr>";
    $table = $table . "</table>";

    fwrite($f,$table);
        fclose($f);

?>
Ana Sayfa