• 16-05-2013, 14:47:17
    #1
    Merhaba
    Finans verilerini xmlden okuyup PHP ile tablolama yapmak istiyorum.Her sütun farklı renkte olacak şekilde. Birkaç deneme yaptım fakat sonuç elde edemedim. PHP ve XML kodları aşağıdaki bulunuyor.
    PHP Kodları:
    <?php
        // Şimdi uyeler.xml dosyamızı çekelim ve eğer hata meydala gelirse hatayı yazdıralım:
        if(!$xml=simplexml_load_file('finans.xml')){
            trigger_error('XML dosyasını okurken hata meydana geldi.',E_USER_ERROR);
        }
        echo 'Piyasa Bilgileri <br />';
        foreach($xml as $uye){
    		
            echo ''.$uye->aciklama.' '.$uye->alis.' '.$uye->satis. ' '.$uye->tarih. ' <br />';
        }
    ?>
    XML içeriği
    <dataveri>
    
    
    <data>
    <sembol>EURUSD</sembol>
    <aciklama>EURO/USD</aciklama>
    <alis>1,2938</alis>
    <satis>1,2939</satis>
    <gunlukyuzde>-0,2725</gunlukyuzde>
    <dunkukapanis>1,2974</dunkukapanis>
    <fark>-0,0035</fark>
    <tarih>14.05.2013 22:50:57</tarih>
    </data>
    </dataveri>
  • 16-05-2013, 18:16:30
    #2
    Şu şekilde dener misin.
    <?php
        // Şimdi uyeler.xml dosyamızı çekelim ve eğer hata meydala gelirse hatayı yazdıralım:
    $xml=simplexml_load_file('finans.xml')
        if(!$xml){
            trigger_error('XML dosyasını okurken hata meydana geldi.',E_USER_ERROR);
        }
        echo 'Piyasa Bilgileri <br />';
        foreach($xml as $uye){
    		
            echo ''.$uye->aciklama.' '.$uye->alis.' '.$uye->satis. ' '.$uye->tarih. ' <br />';
        }
    ?>
  • 21-05-2013, 14:09:03
    #3
    Merhaba
    Yanlış anladınız sanırım, Bu kod bu şekilde çalışıyor fakat ben ekrana tablo şeklinde yazdırmak istiyorum. Yani sütun ve satır çizgilerini hatta sütunları renklendirmek istiyorum.
  • 21-05-2013, 17:42:47
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bunu sadece bu şekilde kullanacaksanız xml schema ve xslt yardımı ile bu xml yapısını html haldeyken direkt olarak tablo gibi göstermeniz mümkün ama yok php ye ihtiyacım var diyorsanız.

    <table>
    <tr>
    <td>Açıklama</td>
    <td>Alış</td>
    <td>Satış</td>
    <td>Tarih</td>
    <tr>
    <?php
    if(!$xml=simplexml_load_file('finans.xml')){
            trigger_error('XML dosyasını okurken hata meydana geldi.',E_USER_ERROR);
    }
    foreach($xml as $uye):
    ?>
    <tr>
    <td><?php echo $uye->aciklama; ?></td>
    <td><?php echo $uye->alis; ?></td>
    <td><?php echo $uye->satis; ?></td>
    <td><?php echo $uye->tarih; ?></td>
    </tr>
    <?php endforeach;?>
    </table>
    şeklinde tablo haline getirebilir td lere tr lere stiller atayabilir istediğiniz durumda class yada id gibi spesific durumlara sokabilirsiniz.Kolay gelsin.
  • 26-05-2013, 12:23:26
    #5
    Teşekkür ederim blacksta.
    Şimdide şöyle bir sorunum var, verileri xmldeki yapıya göre sıralıyor. Oysa sıralamada değişiklik yapmak istiyorum. Örneğin usd ile gümüşü yer değiştirmek istiyorum. Bunun için ne yapmam lazım?
  • 27-05-2013, 01:15:02
    #6
    yardımcı olabilecek biri yokmu?
  • 27-05-2013, 01:59:35
    #7
    storcom adlı üyeden alıntı: mesajı görüntüle
    yardımcı olabilecek biri yokmu?
    XML yapısı aşağıdaki gibiyse eğer

    <dataveri>
    <data>
    <sembol>EURUSD</sembol>
    <aciklama>EURO/USD</aciklama>
    <alis>1,2938</alis>
    <satis>1,2939</satis>
    <gunlukyuzde>-0,2725</gunlukyuzde>
    <dunkukapanis>1,2974</dunkukapanis>
    <fark>-0,0035</fark>
    <tarih>14.05.2013 22:50:57</tarih>
    </data>
    </dataveri>
    Yazmış olduğum PHP kodları çalışması gerekir.. Sanırım işini görür bu şekilde


    <?  
    @$icerik=file_get_contents("data.xml");
    $icerik = str_replace(array("\n","\r"), "", $icerik);
    
    preg_match_all('#<sembol>(.*?)</sembol><aciklama>(.*?)</aciklama><alis>(.*?)</alis><satis>(.*?)</satis><gunlukyuzde>(.*?)</gunlukyuzde><dunkukapanis>(.*?)</dunkukapanis><fark>(.*?)</fark><tarih>(.*?)</tarih>#si',$icerik, $loto, PREG_SET_ORDER);
    
    echo "sembol = > " . $loto[0][1] ."<br>";
    echo "aciklama = > " . $loto[0][2] ."<br>";
    echo "alis = > " . $loto[0][3] ."<br>";
    echo "satis = > " . $loto[0][4] ."<br>";
    echo "gunlukyuzde = > " . $loto[0][5] ."<br>";
    echo "dunkukapanis = > " . $loto[0][6] ."<br>";
    echo "fark = > " . $loto[0][7] ."<br>";
    echo "tarih = > " . $loto[0][8] ."<br>";
  • 28-05-2013, 11:58:54
    #8
    Cevap için teşekkürler Aronfabia
    Vermiş olduğun kodlar çalışmadı. Ayrıca ben değerlerde değilde satırlarda yer değiştirmek istiyorum. XML dosyamın tamamı aşağıda yer alıyor. Mesela orda altın ile usd yi yer değiştirmek istersem ne yapmalıyım.

    <?xml version="1.0" encoding="utf-8"?>
    <dataveri>
    
    
    <data>
    <sembol>EURUSD</sembol>
    <aciklama>EURO/USD</aciklama>
    <alis>1,2938</alis>
    <satis>1,2939</satis>
    <gunlukyuzde>-0,2725</gunlukyuzde>
    <dunkukapanis>1,2974</dunkukapanis>
    <fark>-0,0035</fark>
    <tarih>14.05.2013 22:50:57</tarih>
    </data>
    
    
    <data>
    <sembol>GBPUSD</sembol>
    <aciklama>INGILIZ STERLINI</aciklama>
    <alis>1,52274</alis>
    <satis>1,52285</satis>
    <gunlukyuzde>-0,45725</gunlukyuzde>
    <dunkukapanis>1,52979</dunkukapanis>
    <fark>-0,00700</fark>
    <tarih>14.05.2013 22:50:50</tarih>
    </data>
    
    <data>
    <sembol>USDCHF</sembol>
    <aciklama>ISVICRE FRANGI</aciklama>
    <alis>0,965300</alis>
    <satis>0,965490</satis>
    <gunlukyuzde>0,808751</gunlukyuzde>
    <dunkukapanis>0,957650</dunkukapanis>
    <fark>0,007745</fark>
    <tarih>14.05.2013 22:50:58</tarih>
    </data>
    
    <data>
    <sembol>USDJPY</sembol>
    <aciklama>JAPON YENI</aciklama>
    <alis>102,256</alis>
    <satis>102,267</satis>
    <gunlukyuzde>0,405</gunlukyuzde>
    <dunkukapanis>101,849</dunkukapanis>
    <fark>0,412</fark>
    <tarih>14.05.2013 22:50:58</tarih>
    </data>
    
    <data>
    <sembol>XAGUSD</sembol>
    <aciklama>GUMUS</aciklama>
    <alis>23,415</alis>
    <satis>23,447</satis>
    <gunlukyuzde>-1,010</gunlukyuzde>
    <dunkukapanis>23,670</dunkukapanis>
    <fark>-0,239</fark>
    <tarih>14.05.2013 22:50:52</tarih>
    </data>
    
    <data>
    <sembol>XAUUSD</sembol>
    <aciklama>ALTIN ONS</aciklama>
    <alis>1426,50</alis>
    <satis>1426,70</satis>
    <gunlukyuzde>-0,28</gunlukyuzde>
    <dunkukapanis>1430,54</dunkukapanis>
    <fark>-3,94</fark>
    <tarih>14.05.2013 22:50:58</tarih>
    </data>
    
    <data>
    <sembol>XPDUSD</sembol>
    <aciklama>PALLADIUM</aciklama>
    <alis>728,50</alis>
    <satis>731,80</satis>
    <gunlukyuzde>1,98</gunlukyuzde>
    <dunkukapanis>716,00</dunkukapanis>
    <fark>14,15</fark>
    <tarih>14.05.2013 22:50:58</tarih>
    </data>
    
    <data>
    <sembol>XPTUSD</sembol>
    <aciklama>PLATIN</aciklama>
    <alis>1498,25</alis>
    <satis>1508,25</satis>
    <gunlukyuzde>1,54</gunlukyuzde>
    <dunkukapanis>1480,50</dunkukapanis>
    <fark>22,75</fark>
    <tarih>14.05.2013 22:50:51</tarih>
    </data>
    
    </dataveri>
  • 28-05-2013, 13:23:40
    #9
    storcom adlı üyeden alıntı: mesajı görüntüle
    Cevap için teşekkürler Aronfabia
    Vermiş olduğun kodlar çalışmadı. Ayrıca ben değerlerde değilde satırlarda yer değiştirmek istiyorum. XML dosyamın tamamı aşağıda yer alıyor. Mesela orda altın ile usd yi yer değiştirmek istersem ne yapmalıyım.

    <?xml version="1.0" encoding="utf-8"?>
    <dataveri>
    
    
    <data>
    <sembol>EURUSD</sembol>
    <aciklama>EURO/USD</aciklama>
    <alis>1,2938</alis>
    <satis>1,2939</satis>
    <gunlukyuzde>-0,2725</gunlukyuzde>
    <dunkukapanis>1,2974</dunkukapanis>
    <fark>-0,0035</fark>
    <tarih>14.05.2013 22:50:57</tarih>
    </data>
    
    
    <data>
    <sembol>GBPUSD</sembol>
    <aciklama>INGILIZ STERLINI</aciklama>
    <alis>1,52274</alis>
    <satis>1,52285</satis>
    <gunlukyuzde>-0,45725</gunlukyuzde>
    <dunkukapanis>1,52979</dunkukapanis>
    <fark>-0,00700</fark>
    <tarih>14.05.2013 22:50:50</tarih>
    </data>
    
    <data>
    <sembol>USDCHF</sembol>
    <aciklama>ISVICRE FRANGI</aciklama>
    <alis>0,965300</alis>
    <satis>0,965490</satis>
    <gunlukyuzde>0,808751</gunlukyuzde>
    <dunkukapanis>0,957650</dunkukapanis>
    <fark>0,007745</fark>
    <tarih>14.05.2013 22:50:58</tarih>
    </data>
    
    <data>
    <sembol>USDJPY</sembol>
    <aciklama>JAPON YENI</aciklama>
    <alis>102,256</alis>
    <satis>102,267</satis>
    <gunlukyuzde>0,405</gunlukyuzde>
    <dunkukapanis>101,849</dunkukapanis>
    <fark>0,412</fark>
    <tarih>14.05.2013 22:50:58</tarih>
    </data>
    
    <data>
    <sembol>XAGUSD</sembol>
    <aciklama>GUMUS</aciklama>
    <alis>23,415</alis>
    <satis>23,447</satis>
    <gunlukyuzde>-1,010</gunlukyuzde>
    <dunkukapanis>23,670</dunkukapanis>
    <fark>-0,239</fark>
    <tarih>14.05.2013 22:50:52</tarih>
    </data>
    
    <data>
    <sembol>XAUUSD</sembol>
    <aciklama>ALTIN ONS</aciklama>
    <alis>1426,50</alis>
    <satis>1426,70</satis>
    <gunlukyuzde>-0,28</gunlukyuzde>
    <dunkukapanis>1430,54</dunkukapanis>
    <fark>-3,94</fark>
    <tarih>14.05.2013 22:50:58</tarih>
    </data>
    
    <data>
    <sembol>XPDUSD</sembol>
    <aciklama>PALLADIUM</aciklama>
    <alis>728,50</alis>
    <satis>731,80</satis>
    <gunlukyuzde>1,98</gunlukyuzde>
    <dunkukapanis>716,00</dunkukapanis>
    <fark>14,15</fark>
    <tarih>14.05.2013 22:50:58</tarih>
    </data>
    
    <data>
    <sembol>XPTUSD</sembol>
    <aciklama>PLATIN</aciklama>
    <alis>1498,25</alis>
    <satis>1508,25</satis>
    <gunlukyuzde>1,54</gunlukyuzde>
    <dunkukapanis>1480,50</dunkukapanis>
    <fark>22,75</fark>
    <tarih>14.05.2013 22:50:51</tarih>
    </data>
    
    </dataveri>
    Sana göndermiş olduğum kod senin XML' de dosyanda da sorunsuz çalışır.. Ben sadece 1 data olarak düşündüm bu yüzden $loto arrayına 0 olarak tanımladım.. Hangi sırada nasıl istiyorsan ilk olarak print_r($loto); yazıp ekranda göster daha sonra hangi sırada kaçıncı array varsa ona göre değişiklik yapman lazım..

    Ancak sen sıralamayı kendin oluşturmak istersen döngüye sokmadan yapmalısın ya da döngü ile yapıp içine tekrar bir fonksiyon yazman gerekli hangi sırada neyin çıkmasını istiyorsan.