lostyazilim
tr.link

Döviz Botu Yaparken Bir Yerde Takıldım

4 Mesajlar 1.258 Okunma
lstbozum
tr.link

Onur89TR Onur89TR Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 04.12.2011
  • Yaş/Cinsiyet 35 / E
  • Meslek .
  • Konum İzmir
  • Ad Soyad ** **
  • Mesajlar 2376
  • Beğeniler 704 / 791
  • Ticaret 1, (%100)
Merhaba arkadaşlar. Bu aralar bot yapma işine merak saldım. İlk defa bir döviz botu yapmaya bu kadar yakınım. Fakat beni zorlayan bir yer var, sizlere danışmak istedim.
$veri = file_get_contents("http://xml.altinkaynak.com/doviz.xml");
// preg_match_all("@\s+(.*?)\s+(.*?)\s+\s+@si",$veri,$adi_al_sat);
preg_match_all("@\s+(.*?)\s+(.*?)\s+(.*?)\s+@si",$veri,$adi_al_sat);
$sayi = 0;
while ($sayi < count($adi_al_sat[0])) {
echo $adi_al_sat[1][$sayi]." ALIŞ: ".$adi_al_sat[2][$sayi].", SATIŞ: ".$adi_al_sat[3][$sayi]."
";
$sayi++;
} ?>

// ile başladığım satır sadece ilk değeri gösteriyor. Diğeri ise tüm dövizleri gösteriyor. Buraya kadar normal gibi. Ama ilk içindeki değeri işi bozuyor. Ve o değerden 2. değere kadar ne varsa tek değişkene atıyor. Yani çıktıyı bozmuş oluyor. Dediğim gibi, ilk // ile başlayanı kullanınca ilk değerleri, diğerini aldığımda ise tüm değerleri atıyor.
İkinciyi kullandığımda çıktı şu:
Tarih ALIŞ: 24.12.2013 16:34:52 USD 2.0760, SATIŞ: 2.0890
EUR ALIŞ: 2.8370, SATIŞ: 2.8550
CHF ALIŞ: 2.3060, SATIŞ: 2.3320
GBP ALIŞ: 3.3860, SATIŞ: 3.4370
DKK ALIŞ: 0.3785, SATIŞ: 0.3827
SEK ALIŞ: 0.3137, SATIŞ: 0.3171
NOK ALIŞ: 0.3347, SATIŞ: 0.3384
JPY ALIŞ: 0.0198, SATIŞ: 0.0201
SAR ALIŞ: 0.5490, SATIŞ: 0.5591
AUD ALIŞ: 1.8430, SATIŞ: 1.8690
CAD ALIŞ: 1.9464, SATIŞ: 1.9740

Gördüğünüz gibi o değişkeni yüzünden ilk satırla 2. satır birleşiyor. Benim yapmak istediğim sadece düzgün bir biçimde PARA BİRİMİ, ALIŞ: ***, SATIŞ: *** şeklinde değerleri yazdırmak. Şimdiden teşekkürler. :)
 

 

wmaraci
reklam

4531 4531 WM Aracı Anonim Üyelik
  • Üyelik 13.03.2012
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 996
  • Beğeniler 210 / 211
  • Ticaret 3, (%100)
http://ibrahimcevruk.com/bot-ile-html-tagi-bulunmayan-verileri-cekme-islemi-file.html hocam bu arkadaş çok mükemmel anlatmış. Tam istediğiniz konu ve döviz sistemi üzerinde.
Onur89TR

kişi bu mesajı beğendi.

opeys opeys WM Aracı Kullanıcı
  • Üyelik 25.12.2012
  • Yaş/Cinsiyet 30 / E
  • Meslek öğrenmekte
  • Konum İstanbul Anadolu
  • Ad Soyad Y** U**
  • Mesajlar 210
  • Beğeniler 14 / 45
  • Ticaret 4, (%100)
Videodan sonra yapayım dedim buyrun belki başkalarının işine yarar :)
$site = file("http://www.tcmb.gov.tr/kurlar/today.html");

$dolar = $site[11];
$euro = $site[14];

$dolar = explode(" ", $dolar);
$euro = explode(" ", $euro);

$dal = $dolar[2]; // dolar alış
$dsa = $dolar[3]; // dolar satış

$eal = $euro[3]; // euro alış
$esa = $euro[4]; // euro satış

echo $dal."-".$dsa;
echo "
".$eal."-".$esa;
?>
Onur89TR

kişi bu mesajı beğendi.

Değişkenlere en büyük örnek; insanlardır!

Onur89TR Onur89TR Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 04.12.2011
  • Yaş/Cinsiyet 35 / E
  • Meslek .
  • Konum İzmir
  • Ad Soyad ** **
  • Mesajlar 2376
  • Beğeniler 704 / 791
  • Ticaret 1, (%100)
Dostlarım teşekkürler ben de bir deneme yaptım ve çalışmakta.
function doviz($parabirimi) {
$site = file("http://tcmb.gov.tr/kurlar/today.html");
for ($i=11 ; $i< 30 ; $i++) {
if (strpos($site[$i],$parabirimi)==true) { $satir = $i; break; }
}
preg_match("@".$parabirimi."\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?)\n@si",$site[$satir],$kes1);
preg_match("@".$parabirimi."\s+(.*?)\s+(.*?)\n@si",$site[$satir],$kes2);
if (trim($kes1[3]=="")) { $kes3 = $kes2; } else { $kes3 = $kes1; }
echo $parabirimi."   ALIŞ: " . $kes3[1].", SATIŞ: ".$kes3[2];
}
doviz("PAKİSTAN RUPİSİ");
?>

Arkadaşlarımız bunu daha da geliştirebilirler. Yardımcı olanlara teşekkürler.
opeys

kişi bu mesajı beğendi.

wmaraci
wmaraci
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al