Gönderen Konu: Php için Döviz Kurları Kodu  (Okunma sayısı 5282 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı zeron

  • Tecrübeli üye
  • *****
  • İleti: 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

[code]
<?
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>
[/code]


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.


[code]<?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);

?> [/code]

Çevrimdışı zeron

  • Tecrübeli üye
  • *****
  • İleti: 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.

[code]<?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]); }


?>[/code]


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


[code]<?
$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>";
?>[/code]

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

[code]<? include('doviz.php'); ?>[/code]



Alıntı: Ceviz.Net

 

Voiser