"Enter"a basıp içeriğe geçin

Php ile iddaa bülteni verilerini çekmek

Php ile uzak sunuculardan veri çekerken iki yöntemimiz bulunur bunlardan biri file_get_contents() methodu bir diğeri bizim kullanacağımız olan Curl yöntemidir  ilk methodu kullanmama amacımız localhostta çalışmasına rağmen bazı sunucularda çalışmayabilir bu yüzden Curl daha sağlıklı bir yöntemdir şimdi Curl yöntemimiz için kullanacağımız fonksiyonumuzu yazalım.

function Curlbaglan($basla,$son,$site) //başlangıç değerimiz - nereye kadar gideceği - veriyi çekeceğimiz site adresi.
 {
 $ch = curl_init();
 $hc = "YahooSeeker-Testing/v3.9 (compatible; Mozilla 4.0; MSIE 5.5; Yahoo! Search - Web Search)";
 curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com'); //karşı sunucuya kendimizi google olarak gösteriyoruz.
 curl_setopt($ch, CURLOPT_URL, $site);
 curl_setopt($ch, CURLOPT_USERAGENT, $hc);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $site = curl_exec($ch);
 preg_match_all('@'.$basla.'(.*?)'.$son.'@si',$site,$veri_derece1);
 return $veri_derece1[1];
 curl_close($ch);
 }

fonksiyonumuzu yazdıktan sonra verileri çektikten sonra bize gerecek olan temizleme fonksiyonlarımızı ekliyoruz bu fonksiyonlar ile maç oranlarını düzenleyeceğiz ve takım isimlerindeki türkçe karakterleri değiştirerek daha sağlıklı sonuç elde ediyoruz.

function temizle($tr1) {
$turkce=array("ş","Ş","ı","ü","Ü","ö","Ö","ç","Ç","ş","Ş","ı","ğ","Ğ","İ","ö","Ö","Ç","ç","ü","Ü"," ","-");
$duzgun=array("s","s","i","u","u","o","o","c","c","s","s","i","g","g","i","o","o","c","c","u","u","","");
$tr1=str_replace($turkce,$duzgun,$tr1);
return $tr1;
}

function sifirla($tr1) {
 if($tr1 == "10,00") {
 $tr1 = 10;
 return $tr1;
 } else {
$turkce=array(",00","0");
$duzgun=array("","");
$tr1=str_replace($turkce,$duzgun,$tr1);
return $tr1;
 }
}

fonksiyonlarımızı yazdıktan sonra şimdi geldik verilerimizi çekmeye aşağıda bulunan kodlarımız ile verileri tek tek çekiyoruz en sonunda döngümüz ile tüm verileri listeliyoruz.

  $url = 'http://iddaa.tahminkolik.com/iddaaprogram.aspx'; //veriyi çekeceğimiz site adresi
 $ms1cek = Curlbaglan('MS1" align="right"','td>',$url); /* maç sonucu 1 oranını çekiyoruz bu oran tahminkolik sitesinin kaynağında 'MS1" align="right"' VE <td> tagları arasında bulunuyor. */</pre>
<pre>$ligcek = Curlbaglan('<td><a target=_blank href="http://www.mackolik.com/Lig','</td>',$url);
 $saatcek = Curlbaglan('<td><a target=_blank href="http://www.mackolik.com/Mac','</td>',$url);
 $kodcek = Curlbaglan('<td><a target=_blank href="http://www.mackolik.com/Karsilastirma','</td>',$url);
 $tk1cek = Curlbaglan('<a target=_blank href="http://www.mackolik.com/Takim/','/a>',$url);
 $ms0cek = Curlbaglan('MS0" align="right"','td>',$url);
 $ms2cek = Curlbaglan('MS2" align="right"','td>',$url);
 $iycek = Curlbaglan('<td nowrap>','</td>',$url);
 $mscek = Curlbaglan('&nbsp;<a href="http://www.mackolik.com/Mac','</a>',$url);
 $hcek = Curlbaglan('<span style="color:red">','</span>',$url);

echo'<table width="600px" border="0">
<tr>
 <td><a href="#">SAAT</a></td>
 <td><a href="#">LİG</a></td>
 <td><a href="#">KOD</a></td>
 <td><a href="#">KARŞILAŞMA</a></td>
 <td></td>
 <td><a href="#">MS1</a></td>
 <td><a href="#">MSX</a></td>
 <td><a href="#">MS2</a></td>
 <td width="50px"></td>
 <td><a href="#">İ.Y</a></td>
 <td><a href="#">M.S</a></td>

 </tr>';
 for ($a=0; $a<count($ligcek); $a++) {

$yenilig = yeni('">','</a>',$ligcek[$a],$a);
$yenisaat = yeni('">','</a>',$saatcek[$a],$a);
$yenitakim = yeni('">','<',$tk1cek[$a*2],$a);
$yenitakim2 = yeni('">','<',$tk1cek[$a*2+1],$a);
$yenikod = yeni('">','</a>',$kodcek[$a],$a);
$yenims = yeni('<b>','</b>',$mscek[$a],$a);
$yenims1cek = yeni('>','<',$ms1cek[$a],$a);
$yenims0cek = yeni('>','<',$ms0cek[$a],$a);
$yenims2cek = yeni('>','<',$ms2cek[$a],$a);

 $msal = $yenims[0]."a";
 $iyal = $iycek[$a]."a";
 $msparcalaev = yeni('',' -',$msal,$a);
 $msparcaladep = yeni('- ','a',$msal,$a);
 $iyparcalaev = yeni('',' -',$iyal,$a);
 $iyparcaladep = yeni('- ','a',$iyal,$a);
 $tarih = date('d.m.Y');
 $temizlig = temizle($yenilig[0]);
 $ev = temizle($yenitakim[0]);
 $dep = temizle($yenitakim2[0]);
 $temizms1 = sifirla($yenims1cek[0]);
 $temizms0 = sifirla($yenims0cek[0]);
 $temizms2 = sifirla($yenims2cek[0]);

echo'
 <tr>
 <td>'.$yenisaat[0].'</td>
 <td>'.$yenilig[0].'</td>
 <td>'.$yenikod[0].'</td>
 <td>'.$yenitakim[0]." - ".$yenitakim2[0].'</td>
 <td></td>
 <td>'.$yenims1cek[0].'</td>
 <td>'.$yenims0cek[0].'</td>
 <td>'.$yenims2cek[0].'</td>
 <td width="50px"></td>
 <td>'.$iycek[$a].'</td>
 <td>'.$yenims[0].'</td>
 </tr>';

}
echo'</table>';

Ve sonunda iddaa bültenimiz hazır bu bülten ile hem maç sonuçlarını hem de oranlarımızı çekmiş olduk incelemek isterseniz demoya tıklayabilirsiniz. Anlayamadığınız yer olursa yorum yapabilirsiniz.

[button url=”/demo/iddaa-bulteni.php” target=”_blank” arrow=”right”]ÇALIŞMAYI GÖRÜNTÜLE[/button] [button url=”/indir/iddaa-bulteni.zip” arrow=”left”]ÇALIŞMAYI İNDİR[/button]

13 Yorum

  1. Harika bir paylaşım teşekkürler.

  2. FATİH TANYERİ FATİH TANYERİ

    Can bey merhaba
    İddaa ile ilgili olarak ne zamandır yapmayı planladığım bir durum var. sizin yaptığınız uygulama istediğim gibi. PHP programı olmadığı için uygulamayı açamadım.
    Soruların olacak.
    1-) Program http://www.iddaa.com adresinden verileri liglere göre ve tüm haliyle ( skor tahmini vs) çekiyor mu? Geçmişe yönelik de çekiyor mu?
    2-) Program maç sonuçlarını geçmişe yönelik de çekiyor mu?
    3-) Mantıksal raporlaramalar yapıyor mu( Mesela 1,35 oranlı kaç maç var ve ne kadarı tutmuş gibi)
    4-) Bu programı kullanma bedeli ne kadardır?
    Dönüş yapabilir misiniz?

    • Merhaba Fatih bey,
      1-) malesef geçmişe yönelik çekilmiyor fakat benim elimde iddaa’nın 2004 ten bu yana verdiği tüm maçlar ilk yarı ve maç sonu skorları bulunuyor 174.000 üzerinde maç ve halen güncelleyerek devam ediyor.
      2-) malesef az önce dediğim gibi geçmişe yönelik çekemiyoruz.
      3-) eğer elinizde veriler varsa 1.soruda belirttiğim gibi evet istediğiniz şekilde yapabilirsiniz.
      4-) yakında google playde bu uygulamamı paylaşacağım 1 2 tl gibi makul bir ücretle.

      kusura bakmayın biraz geç cevapladım.

      • Mutllu KARAGÖZ Mutllu KARAGÖZ

        2004 Yılndan bu yana idda sonuçları elimde var demişsiniz bunu paylaşıyor musunuz ? Bunu nasıl alabiliriz ?

        • Merhaba Mutlu, ücretli olarak sunabilirim bunu size isterseniz iletişime geçmek için lütfen “cancmgz@gmail.com” adresime mail atınız.

  3. Merhabalar Can,

    Hocam elimde bir script var bunu çalışır hale getirmek istiyorum ilgilenirseniz ücreti karşılığında yaptırmak isterim.

  4. ali ali

    Hocam selam,
    Bu çekilen verileri myql ‘e nasıl kaydedebiliriz. Biraz uğraştım ama 0 değerleri kaydediliyor

    • Merhaba Ali, gelen verileri aktarmak için öncelikle neye ihtiyacın olduğunu belirlemelisin ve yapacağın işe uygun tablolar hazırlamalısın veritabanında daha sonra ise gelen verileri ekrana yazdırdığın döngüde aynı şekilde sürekli kontrol ettirerek bu çok önemli! çünkü bazen aynı maçı iki defa çekebiliyor bot nadirde olsa yaşadım gelelim nasıl kaydettireceğine.

      for döngüsünün içerisinde yazdıracağız! yukarıda ki koda göre anlatıyorum.

      $sql = "INSERT INTO `tablomuz_tbl`(`tablomuz_mackodu`, `tablomuz_lig`, `tablomuz_saat`) VALUES ('".$yenikod[0]."','".$yenilig[0]."','".$yenisaat[0]."')";

      sql’imiz bu tabi bunun güvenlik kısımlarını yaptırıp daha sonra mysqli ile aktarabilirsin eğer kodunu buraya yazarsan daha iyi yardımcı olabilirim :)

  5. Osman Osman

    Merhaba hocam indirme linkini bulamıyorum :)

  6. İyi günler maçkolik genis idda programı sayfası üzerinden veri çekmek istiyorum ve file_get_contents() yalnız bazı kısımlar sadece veri şeklinde ve burdan veriyi çekemiyorum. devamındaki kodu yazınca da hiçbirşey gözükmüyor. Yardım edebilirseniz sevinirim.

  7. ertugrul ertugrul

    Parse error: syntax error, unexpected ”,$url); /* maç sonucu 1 oranını çekiyoruz bu oran tahminkolik sitesinin kaynağında ‘MS1″ align=”right”‘ VE tagları arasında bulunuyor. */
    problem burada görünüyo

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.