Php için Döviz Kurları Kodu

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı zeron

  • *****
  • Join Date: Nis 2008
  • Yer: Kayseri
  • 3335
  • +426/-0
  • Cinsiyet: Bay
    • Uyanan Gençlik
Php için Döviz Kurları Kodu
« : 23 Ocak 2013, 11:37:05 »
Aşağıdaki kodu sitenize ekleyin  hug1

Kod: You are not allowed to view links. Register or Login
<?
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>


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.


Kod: You are not allowed to view links. Register or Login
<?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($f1024));
        
$gecmisay trim(fgets($f1024));
    
$gecmisyil trim(fgets($f1024));
    
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($fdate("d\nm\ny"));
        
fclose($f);   
    }
  } else {
    
copy("http://www.tcmb.gov.tr/kurlar/today.xml","today.xml");
    
$f=fopen("day.txt","w");
    
fwrite($fdate("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);

?>

Çevrimdışı zeron

  • *****
  • Join Date: Nis 2008
  • Yer: Kayseri
  • 3335
  • +426/-0
  • Cinsiyet: Bay
    • Uyanan Gençlik
Ynt: Php için Döviz Kurları Kodu
« Yanıtla #1 : 23 Ocak 2013, 11:49:25 »
Php ile sitenize Merkez Bankası döviz kurlarını ekleyebilirsiniz. Bu kod sayesinde kurlar Merkez Bankası'ndan çekildikten sonra, aynı kodlar tekrar çalıştırılana kadar kurlar kur.kur dosyası ile sitenizden çağrılacak ve yavaşlama ortadan kalkacaktır.

Aşağıda ki kodu doviz_al.php olarak kaydedin.
Siteniz de kur.kur diye bir dosya oluşturun.
Merkez bankası kurları 15:30'da güncellemektedir.
Bu dosyayı hergün 15:30'da 1 kere çalıştırın.
En basit yöntemle Cpanel'de bulunan Yapılacak İşler(Cron Jobs) bölümünden bu işi her gün otomatik yapması için bir komut verebilirsiniz.

Kod: You are not allowed to view links. Register or Login
<?php



function tcmb($bakilacak,$site)
{
    
$fp=@fopen($site,"r");
    if(
$fp) {
        while(!
feof($fp)) {
            
$satir=fgets($fp,512);
            
$code=substr($satir,0,3);
            if(
$code==$bakilacak)
            {
                
$sonuc=split("[[:space:]]+",$satir);
                
$doviz[1]=substr($sonuc[4],0,9);
                
$doviz[2]=substr($sonuc[5],0,9);
                
$doviz[3]=substr($sonuc[3],0,9);
                
$doviz[4]=substr($sonuc[4],0,9);
                
$doviz[5]=substr($sonuc[6],0,9);
                return 
$doviz;
            }
        }
    }

}

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

if (
$dosya fopen("kur.kur","w")) { fwrite($dosya,$usd_doviz[1]."\n".$usd_doviz[2]."\n".$eur_doviz[3]."\n".$eur_doviz[1]); }


?>


Kurları göstermek için doviz.php isimli bir dosya oluşturun. Dosya içine aşağıda ki kodları ekleyin.


Kod: You are not allowed to view links. Register or Login
<?
$imkb = file("kur.kur");

echo "Doviz Alış: $imkb[0]<br>";
echo "Doviz Satış: $imkb[1]<br>";
echo "<br>";
echo "Euro Alış: $imkb[2]<br>";
echo "Euro Satış: $imkb[3]<br>";
?>

Aşağıdaki komut ile kurları sitenizde görüntüleyebilirsiniz.
Kolay Gelsin.
 bow3

Kod: You are not allowed to view links. Register or Login
<? include('doviz.php'); ?>


Alıntı: Ceviz.Net