• 05-10-2014, 23:51:50
    #1
    F. STACK WEB + MOBILE DEV
    Merhaba arkadaşlar,

    Php öğrenmeye çalışıyorum, daha yeniyim ve basit bilgim ile bir bot yapabildim. Ancak bot sadece eklediğim kategoriden ilk içeriği çekiyor.

    Döngü ile o sayfaya ve o kategoriye bağlı tüm yazıları çekmek istiyorum ama bir türlü yapamadım. While, For, For Each denedim ama olmadı maalesef.

    Ben bu botta yazıları nasıl döngüye *******?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    	<title>Film Botu</title>
    </head>
    <body>
    	<?php
    	
    	  $kategori = "Aile";
    	  
    	  function siteConnect($site)
          {
    
          $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');
          curl_setopt($ch, CURLOPT_URL, $site);
          curl_setopt($ch, CURLOPT_USERAGENT, $hc);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
          $site = curl_exec($ch);
          curl_close($ch);
      
          // Veriyi parçalama işlemi
          preg_match_all('@<div class="leftflmbg_right_name"><a href="(.*?)">(.*?)</a></div>@si',$site,$film_adi); 
          preg_match_all('@<img class="lazy" src="(.*?)" width="134" height="194" alt="(.*?)" />@si',$site,$film_resmi);
          preg_match_all('@<div class="leftflmbg_right_contentd">(.*?)</div>@si',$site,$film_ozet);
          preg_match_all('@<div class="leftflmbg_right_content_r">(.*?)</div>@si',$site,$film_yonetmen);
          preg_match_all('@<div class="leftflmbg_right_content_r">(.*?)</div>@si',$site,$film_yapim);
          preg_match_all('@<div class="leftflmbg_right_content_r">(.*?)</div>@si',$site,$film_oyuncu);
       
          echo $film_adi[2][0];   
          echo $film_resmi[0][0];
          echo $film_ozet[0][0];
          echo $film_yonetmen[0][0];
          echo $film_yapim[0][1];
          echo $film_oyuncu[0][2];
    	  
          }
     
     
          $giris = siteConnect('http://site.com/kategori/Turlerine-Gore-Filmler/'.$kategori.'.html');
     
          echo $giris;
    	  
    	
    	?>
    </body>
    </html>
  • 06-10-2014, 00:56:58
    #2
    Preg match all + foreach döngüsü kurarak...
    Mobildeyim o yüzden Detaylı yazamıyorum. Nette araştırın örneklerini bulursunuz.
  • 06-10-2014, 09:50:32
    #3
    F. STACK WEB + MOBILE DEV
    haXan1711 adlı üyeden alıntı: mesajı görüntüle
    Preg match all + foreach döngüsü kurarak...
    Mobildeyim o yüzden Detaylı yazamıyorum. Nette araştırın örneklerini bulursunuz.
    Hocam foreach döngüsünü de denedim olmadı hocam
  • 06-10-2014, 10:16:55
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Komple içerikten Div veya class lara göre parse edersen bunuda foreach e sokarsan istediğin yazı metnini alabilirsin.
  • 06-10-2014, 10:20:30
    #5
    F. STACK WEB + MOBILE DEV
    betmo adlı üyeden alıntı: mesajı görüntüle
    Komple içerikten Div veya class lara göre parse edersen bunuda foreach e sokarsan istediğin yazı metnini alabilirsin.
    Hocam bu dediğinizi nasıl yapacağım?
  • 06-10-2014, 11:17:43
    #6
    Tonks adlı üyeden alıntı: mesajı görüntüle
    Hocam bu dediğinizi nasıl yapacağım?
    Ben mantığını söyledim internette örnekleri mevcut Asp.net olsa yazayım da PHP Bilmiyorum.

    Googleden bakabilirsin.
    https://www.google.com.tr/#q=php+par...1tr&lr=lang_tr
  • 06-10-2014, 11:20:37
    #7
    F. STACK WEB + MOBILE DEV
    betmo adlı üyeden alıntı: mesajı görüntüle
    Ben mantığını söyledim internette örnekleri mevcut Asp.net olsa yazayım da PHP Bilmiyorum.

    Googleden bakabilirsin.
    https://www.google.com.tr/#q=php+par...1tr&lr=lang_tr
    Tamam teşekkür ederim hocam, "Parsel" deyince sen ben farklı bir şey anladım
  • 07-10-2014, 10:54:24
    #8
    Biraz sonra pc ye geçicem, örnekle anlatırım...
  • 07-10-2014, 15:07:53
    #9
    Her bir preg_match_all satırından sorna foreach döngüsü başlatmanız gerekiyor ve bu foreach döngüsü içerisinde elemanları görüntületebilirsiniz...

    örnek:

    preg_match_all('@<div class="leftflmbg_right_name"><a href="(.*?)">(.*?)</a></div>@si',$site,$film_adi); 
    
    foreach ($film_adi[2] as $sayi=>$film_adi_2){
    
    echo $film_adi_2;
    
    }
    Burada $sayi değişkeni döngü içerisinde kaç tane eleman olduğunun sonucunu size verir.

    $film_adi_2 değişkeni de her bir elemanı size gösterir.