• 05-12-2013, 19:46:50
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    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ı...