• 07-03-2010, 15:51:34
    #1
    Merhabalar,

    Yusuf KOÇ ( Raiden ) adlı üyeden alıntı:

     <?php
    
    /*
    * Döviz Kurları
    * Author: Yusuf KOÇ ( Raiden )
    * iletisim: yusufkoc@ayva.net
    *
    * Betik PHP Version >= PHP.5.0.0
    
    * PHP4.x Uyumlu Hale Getirmek İçin "private" ve "public" kısımlarını silmeniz yeterli olacaktır.
    
    * Bu betik TCMB esas alınarak yazılmıştır. 
    
    * Doviz Tipleri:
    
    * USD  1 ABD DOLARI                 
    * AUD  1 AVUSTRALYA DOLARI              
    * DKK  1 DANİMARKA KRONU               
    * EUR  1 EURO                          
    * GBP  1 İNGİLİZ STERLİNİ             
    * CHF  1 İSVİÇRE FRANGI                 
    * SEK  1 İSVEÇ KRONU                   
    * CAD  1 KANADA DOLARI                 
    * KWD  1 KUVEYT DİNARI                
    * NOK  1 NORVEÇ KRONU                  
    * SAR  1 SUUDİ ARABİSTAN RİYALİ       
    * JPY  100 JAPON YENİ
    
    * Kullanımı:
    
    * <?php
    * $tcmb = new Doviz;
    * // 1 USD
    * $tcmb->setDoviz('USD');
    * $tcmb->getALIS();
    * echo '<br/>';
    * $tcmb->getSATIS();
    * 
    * // EURO
    * $tcmb->setDoviz('EUR');
    * $tcmb->getALIS();
    * echo '<br/>';
    * $tcmb->getSATIS();
    * ?>
    *
    * Doviz Tipi İçin Yukarıdaki Seçeneklerden Birisini Seçebilirsiniz. Örneğin İngiliz Sterlini için $tcmb->setDoviz('GBP');
    * yazmanız yeterli olacaktır.
    *
    */
    
    
    class Doviz
    {
        private $adres = 'http://www.tcmb.gov.tr/kurlar/today.html';
        private $dovizTipi;
        private $sonuc = array();
        private $bilgi;
            
        public function setDoviz($doviz)
        {
            $this->dovizTipi = $doviz;
        }
        
        private function getKUR()
        {
            return @file_get_contents($this->adres);
        }
        
        private function parseKUR()
        {
            preg_match_all("#([0-9]\\.[0-9]{1,9})#is",$this->getKUR(),$this->sonuc);
            return $this->sonuc;
            
        }
        
        public function getALIS()
        {
            $this->bilgi = $this->parseKUR();
            
            switch ($this->dovizTipi)
            {
                case 'USD': echo $this->bilgi[0][0]; break;
                case 'AUD': echo $this->bilgi[0][4]; break;
                case 'DKK': echo $this->bilgi[0][8]; break;
                case 'EUR': echo $this->bilgi[0][12]; break;
                case 'GBP': echo $this->bilgi[0][16]; break;
                case 'CHF': echo $this->bilgi[0][20]; break;
                case 'SEK': echo $this->bilgi[0][24]; break;
                case 'CAD': echo $this->bilgi[0][28]; break;
                case 'KWD': echo $this->bilgi[0][32]; break;
                case 'NOK': echo $this->bilgi[0][36]; break;
                case 'SAR': echo $this->bilgi[0][40]; break;
                case 'JPY': echo $this->bilgi[0][44]; break;
                default: 
                    exit('Döviz Tipi Seçiniz!');            
            }
        }
        
        public function getSATIS()
        {
            $this->bilgi = $this->parseKUR();
            
            switch ($this->dovizTipi)
            {
                case 'USD': echo $this->bilgi[0][1]; break;
                case 'AUD': echo $this->bilgi[0][5]; break;
                case 'DKK': echo $this->bilgi[0][9]; break;
                case 'EUR': echo $this->bilgi[0][13]; break;
                case 'GBP': echo $this->bilgi[0][17]; break;
                case 'CHF': echo $this->bilgi[0][21]; break;
                case 'SEK': echo $this->bilgi[0][25]; break;
                case 'CAD': echo $this->bilgi[0][29]; break;
                case 'KWD': echo $this->bilgi[0][33]; break;
                case 'NOK': echo $this->bilgi[0][37]; break;
                case 'SAR': echo $this->bilgi[0][41]; break;
                case 'JPY': echo $this->bilgi[0][45]; break;
                default:
                    exit('Döviz Tipi Seçiniz!');            
            }
        }
    }
    
    ?>
    Buradaki para birimlerini değişkende nasıl alabiliriz?

    case 'USD': echo $this->bilgi[0][0]; break;
    Bu kodu ben

    case 'USD': $usd_alis = $this->bilgi[0][0]; break;
    Şeklinde denedim ama değişken içerisine almayı yapamadım.

    Konuyla ilgilendiğiniz için şimdiden çok teşekkürler...
  • 07-03-2010, 16:11:27
    #2
    Üyeliği durduruldu
    yapan kişi örnek kullanım bile vermiş sınıfın üstündeki yorumu okursnaız

     <?php 
    * $tcmb = new Doviz; 
    * // 1 USD 
    * $tcmb->setDoviz('USD'); 
    * $tcmb->getALIS(); 
    * echo '<br/>'; 
    * $tcmb->getSATIS(); 
    *  
    * // EURO 
    * $tcmb->setDoviz('EUR'); 
    * $tcmb->getALIS(); 
    * echo '<br/>'; 
    * $tcmb->getSATIS(); 
    * ?>
    ekrana basmasını istemiyorsanız

      case 'USD': echo $this->bilgi[0][1]; break; 
                case 'AUD': echo $this->bilgi[0][5]; break; 
                case 'DKK': echo $this->bilgi[0][9]; break; 
                case 'EUR': echo $this->bilgi[0][13]; break; 
                case 'GBP': echo $this->bilgi[0][17]; break; 
                case 'CHF': echo $this->bilgi[0][21]; break; 
                case 'SEK': echo $this->bilgi[0][25]; break; 
                case 'CAD': echo $this->bilgi[0][29]; break; 
                case 'KWD': echo $this->bilgi[0][33]; break; 
                case 'NOK': echo $this->bilgi[0][37]; break; 
                case 'SAR': echo $this->bilgi[0][41]; break; 
                case 'JPY': echo $this->bilgi[0][45]; break; 
                default:
    burdaki echoları return ile değiştirin

    kullanımı için de
    $degisken= $tcmb->getSATIS();
    yontemini kullanın
  • 07-03-2010, 16:52:16
    #3
    Konuyla ilgilendiğiniz için çok teşekkürler..

    doviz_MB.php
    [php]

    <?php

    /*
    * Döviz Kurları
    * Author: Yusuf KOÇ ( Raiden )
    * iletisim: yusufkoc@ayva.net
    *
    * Betik PHP Version >= PHP.5.0.0

    * PHP4.x Uyumlu Hale Getirmek İçin "private" ve "public" kısımlarını silmeniz yeterli olacaktır.

    * Bu betik TCMB esas alınarak yazılmıştır.

    * Doviz Tipleri:

    * USD 1 ABD DOLARI
    * AUD 1 AVUSTRALYA DOLARI
    * DKK 1 DANİMARKA KRONU
    * EUR 1 EURO
    * GBP 1 İNGİLİZ STERLİNİ
    * CHF 1 İSVİÇRE FRANGI
    * SEK 1 İSVEÇ KRONU
    * CAD 1 KANADA DOLARI
    * KWD 1 KUVEYT DİNARI
    * NOK 1 NORVEÇ KRONU
    * SAR 1 SUUDİ ARABİSTAN RİYALİ
    * JPY 100 JAPON YENİ

    * Kullanımı:

    * <?php
    * $tcmb = new Doviz;
    * // 1 USD
    * $tcmb->setDoviz('USD');
    * $tcmb->getALIS();
    * echo '<br/>';
    * $tcmb->getSATIS();
    *
    * // EURO
    * $tcmb->setDoviz('EUR');
    * $tcmb->getALIS();
    * echo '<br/>';
    * $tcmb->getSATIS();
    * ?>
    *
    * Doviz Tipi İçin Yukarıdaki Seçeneklerden Birisini Seçebilirsiniz. Örneğin İngiliz Sterlini için $tcmb->setDoviz('GBP');
    * yazmanız yeterli olacaktır.
    *
    */


    class Doviz
    {
    private $adres = 'http://www.tcmb.gov.tr/kurlar/today.html';
    private $dovizTipi;
    private $sonuc = array();
    private $bilgi;

    public function setDoviz($doviz)
    {
    $this->dovizTipi = $doviz;
    }

    private function getKUR()
    {
    return @file_get_contents($this->adres);
    }

    private function parseKUR()
    {
    preg_match_all("#([0-9]\\.[0-9]{1,9})#is",$this->getKUR(),$this->sonuc);
    return $this->sonuc;

    }

    public function getALIS()
    {
    $this->bilgi = $this->parseKUR();

    switch ($this->dovizTipi)
    {
    case 'USD': return $this->bilgi[0][0]; break;
    case 'AUD': return $this->bilgi[0][4]; break;
    case 'DKK': return $this->bilgi[0][8]; break;
    case 'EUR': return $this->bilgi[0][12]; break;
    case 'GBP': return $this->bilgi[0][16]; break;
    case 'CHF': return $this->bilgi[0][20]; break;
    case 'SEK': return $this->bilgi[0][24]; break;
    case 'CAD': return $this->bilgi[0][28]; break;
    case 'KWD': return $this->bilgi[0][32]; break;
    case 'NOK': return $this->bilgi[0][36]; break;
    case 'SAR': return $this->bilgi[0][40]; break;
    case 'JPY': return $this->bilgi[0][44]; break;
    default:
    exit('Döviz Tipi Seçiniz!');
    }
    }

    public function getSATIS()
    {
    $this->bilgi = $this->parseKUR();

    switch ($this->dovizTipi)
    {
    case 'USD': return $this->bilgi[0][1]; break;
    case 'AUD': return $this->bilgi[0][5]; break;
    case 'DKK': return $this->bilgi[0][9]; break;
    case 'EUR': return $this->bilgi[0][13]; break;
    case 'GBP': return $this->bilgi[0][17]; break;
    case 'CHF': return $this->bilgi[0][21]; break;
    case 'SEK': return $this->bilgi[0][25]; break;
    case 'CAD': return $this->bilgi[0][29]; break;
    case 'KWD': return $this->bilgi[0][33]; break;
    case 'NOK': return $this->bilgi[0][37]; break;
    case 'SAR': return $this->bilgi[0][41]; break;
    case 'JPY': return $this->bilgi[0][45]; break;
    default:
    exit('Döviz Tipi Seçiniz!');
    }
    }
    }
    ?>

    [php]

    Kullandığım php dosyası ise;

    <?php
    // Merkez bankasından günlük kurları alma!
    
    include 'doviz_MB.php';
    
    // EURO
    $tcmb->setDoviz('EUR');
    $EUR_alis = $tcmb->getALIS();
    echo '<br/>';
    $EUR_satis = $tcmb->getSATIS();
    
    echo '<br /><br />';
    echo $EUR_alis;
    echo '<br /><br />';
    
    
    ?>
    Bu şekilde verdiği hata;

    Notice: Undefined variable: tcmb in C:\wamp\www\gunluk_kur.php on line 13
    
    Fatal error: Call to a member function setDoviz() on a non-object in C:\wamp\www\gunluk_kur.php on line 13
    yapamadım
  • 07-03-2010, 21:19:56
    #4
    Üyeliği durduruldu
    <?php 
    // Merkez bankasından günlük kurları alma! 
    
    include 'doviz_MB.php'; 
    
    // EURO 
    $tcmb=new Doviz;
    $tcmb->setDoviz('EUR'); 
    $EUR_alis = $tcmb->getALIS(); 
    echo '<br/>'; 
    $EUR_satis = $tcmb->getSATIS(); 
    
    echo '<br /><br />'; 
    echo $EUR_alis; 
    echo '<br /><br />'; 
    
    
    ?>
    $tcmb=new Doviz;

    ifadesini unutmuşsunuz.
  • 07-03-2010, 21:21:25
    #5
    Eposta Aktivasyonu Gerekmekte
    sınıfı çağırmamışsınız gördüğüm kadarıyla

    $tcmb = new Doviz;