• 05-12-2013, 19:46:50
    #1
    MErhaba,

    basit bir bot yaptım internetteki dökümanları inceleyerek. Fakat bağlanıpta almak istediğim siteden sadece ilk satırı çekebiliyorum. Oysaki 42 satır var almak istediğim. Bunu nasıl yapabilirim :

    Kodlar şu şekilde
    <?php
    
    function Baglan($link){
    $tarayici = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17';
      $ch  = curl_init();
      curl_setopt($ch,CURLOPT_URL,$link);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
      curl_setopt($ch, CURLOPT_USERAGENT, $tarayici);
      curl_setopt($ch,CURLOPT_REFERER,"http://www.yandex.com.tr");
      $curl = curl_exec($ch);
      curl_close($ch);
    return $curl;
    }
    ?>
    
    <?php
    $Baglan= Baglan("http://siteadresi.com/");
    //burada çogaltmaya başla
    $sayi = preg_match('@class="rank">(.*?)</a>@si',$Baglan,$rank);
    //çogaltma sonu
    
    //burada çogaltmaya başla
    $sayi = preg_match('@<td><img(.*?)</a></td>@si',$Baglan,$coinname);
    //çogaltma sonu
    
    //burada çogaltmaya başla
    $sayi = preg_match('@class="price-usd">(.*?)</a>@si',$Baglan,$price);
    //çogaltma sonu
    
    //burada çogaltmaya başla
    $sayi = preg_match('@_change">(.*?)</td>@si',$Baglan,$change);
    //çogaltma sonu
    
    //burada kodları değiştirebilirsin.
    $change = str_replace("_change\">+","label-success\">+",$change);
    $change = str_replace("_change\">-","label-danger\">-",$change);
    
    ?>
    HTML içerinde de şu şekilde yazdırdım
    <td><a <?php print_r($rank['0']);?></td>
    <?php print_r($coinname['0']);?>
    <td><a href="http://www.cryptocoincharts.info#jump-btc-usd" <?php print_r($price['0']);?><td>
    <span class="label <?php print_r($change['0']);?> </span>
  • 05-12-2013, 20:04:51
    #2
    Bir donguye alip 0 yerine artan degeri yazdirmaniz gerekiyor

    GT-I9300 Cihazımdan tapatalk aracılığıyla gönderildi.
  • 05-12-2013, 20:24:40
    #3
    dizinin ilk değeri : 0

    ilk bulunanı alıyor sıkıntı yok. diğerleri için kapsama şunu al;

    for($i=0; $i < 20; $i++){

    }

    içine; $dizi_bulunanlar[$i]

    ekle.

    mantığı bu. kendi koduna uyarlayabilirsin..
  • 05-12-2013, 20:51:13
    #4
    arkadaşların dediğine ek olarak preg_match_all ile bütün verileri alabilirsin ve for döngüsüne dahil edebilirsin. karşı sitenin içeriğini ve hangi döngünün sürekli olması gerektiğini bilmediğim için, şu şekilde bir örnek verebilirim.
    preg_match_all('~class="rank">(.*?)</a>~si',$Baglan,$rank);
    for($i = 0; $i<count($rank[1]); $i++)
    echo $rank[1][$i];
  • 05-12-2013, 21:44:12
    #5
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    arkadaşların dediğine ek olarak preg_match_all ile bütün verileri alabilirsin ve for döngüsüne dahil edebilirsin. karşı sitenin içeriğini ve hangi döngünün sürekli olması gerektiğini bilmediğim için, şu şekilde bir örnek verebilirim.
    preg_match_all('~class="rank">(.*?)</a>~si',$Baglan,$rank);
    for($i = 0; $i<count($rank[1]); $i++)
    echo $rank[1][$i];
    Sürekli dönecek olan aşagıdakidir. hocam. for & count kodlarını internettede buldum ama şu şeklideki HTML kodlarına uygulayamadım
    <td><a <?php print_r($rank['0']);?></td>
    <?php print_r($coinname['0']);?>
    <td><a href="http://www.cryptocoincharts.info#jump-btc-usd" <?php print_r($price['0']);?><td>
    <span class="label <?php print_r($change['0']);?> </span>
  • 05-12-2013, 22:11:37
    #6
    preg_match_all('~class="rank">(.*?)</a>~si',$Baglan,$rank);
    for($i = 0; $i<count($rank[1]); $i++)
    <td><a <?php echo($rank[1][$i]);?></td>
    //ya da 
    <td><a <?=$rank[1][$i];?> </td>
    //şeklinde kendinize göre düzenleyin çoğaltın diğerleri içinde
  • 05-12-2013, 22:21:41
    #7
    Çok teşekkür ederim. Fakat php kodlarının içinde HTML kodları yer aldı. burada bunları birbirinden ayırma işlemini yapamıyorum maalesef bahsettiğim gibi for &count olayını anladım ama oradaki td ve <a gibi kodlar php kodları içerisinde çalışmıyor.

    Kusura bakmayın çok iyi değilim yazılımda.

    tekrar teşekkür ederim yardımınız için
  • 06-12-2013, 09:11:02
    #8
    ufukt51 nicki arkadaşımız yardımcı oldu. sorun çözülmüştür. Çok teşekkür ederim kendisi iki gün boyunca sürekli update edilmiş kodlarla birlikte en sorunsuz versiyonu hazırladı...