• 07-08-2013, 18:47:48
    #1
    1000 civarı IMDB film ID'si bulunan bir liste çektim çok basit bir botla. Şimdi de her film sayfasından bir şey çektirmek istiyorum yalnız PHP bilgim minimum düzeyde.

    Filmlerin IDsi bulunan liste localhost/list.txt şeklinde ve her satırda 1 id bulunuyor. İstediğim filmid değişkeni için list.txtden çekiceği her idyle bir sonuç verecek. Kod aşağıda. Filmid yerine ne koyarsam bu sonuca ulaşırım öğrenirsem yeter. Tabi ekrana düzgün bi şekilde nasıl basılır onu da bilmiyorum.

    List.txt şöyle;
    tt0111161
    tt0068646
    tt0071562
    tt0468569 gidiyor.

            $filmid = 
    	$url = file_get_contents('http://www.imdb.com/title/'.$filmid.'/ratings?ref_=tt_ov_rt');
    	preg_match_all('@<tr><td align="right"  nowrap="1" > <a href="ratings-top_1000">Top 1000 voters</a> </td><td align="right">&nbsp;(.*?)</td><td background="http://i.media-imdb.com/images/rating/ruler.gif" nowrap="1"><img border="1" src="(.*?)"  width="(.*?)" height="5">&nbsp;(.*?)</td></tr>@si',$url,$rating);
    	preg_match_all('@<a href="/title/'.$filmid.'/">(.*?)</a> &gt; <b>User ratings</b>@si',$url,$isim);
    	echo $isim[1][0];
    	echo " ";
    	echo $rating[1][0];
    	echo " ";
    	echo $rating [4][0];
  • 07-08-2013, 19:15:42
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Buyrun hocam, sormak istediğiniz soru olursa konuya yazarsanız iyi olur.

    <?php
    	
    	/* 
    	 * SAINTX > IMDb Botu
    	 * 
    	 * @author: SAINTX
    	 * @web: http://saintx.net
    	 * @mail: im@saintx.net
    	 * @date: 07.08.2013
    	 */
    	
    	$file = file('list.txt', FILE_IGNORE_NEW_LINES);
    	$list = array();
    	
    	foreach($file as $key => $value)
    		$list[$key] = rtrim($value, '\r\n');
    	
    	$datas = array();
    	
    	foreach($list as $id) {
    		$data = file_get_contents('http://www.imdb.com/title/'.$id.'/ratings?ref_=tt_ov_rt');
    		
    		$rating = preg_match_all('@<tr><td align="right"  nowrap="1" > <a href="ratings-top_1000">Top 1000 voters</a> </td><td align="right">&nbsp;(.*?)</td><td background="http://i.media-imdb.com/images/rating/ruler.gif" nowrap="1"><img border="1" src="(.*?)"  width="(.*?)" height="5">&nbsp;(.*?)</td></tr>@si', $data, $matches) ? $matches[4][0] : '';
    		
    		$name = preg_match_all('@<a href="/title/'.$id.'/">(.*?)</a> &gt; <b>User ratings</b>@si', $data, $matches) ? $matches[1][0] : '';
    		
    		$datas[] = (object) array('name' => $name, 'rating' => $rating);
    		
    		unset($data, $rating, $name);
    	}
    	
    	foreach($datas as $data)
    		printf('İsim: %s - Reyting: %s <br />', $data->name, $data->rating);
  • 07-08-2013, 20:32:08
    #3
    1294 link olduğu için zamana takıldı. O yüzden sadece "ini_set('max_execution_time', 3000)" ekledim.

    Gerisi mükemmel. Çok sağolasın.
  • 07-08-2013, 21:00:15
    #4
    permaximum adlı üyeden alıntı: mesajı görüntüle
    1294 link olduğu için zamana takıldı. O yüzden sadece "ini_set('max_execution_time', 3000)" ekledim.

    Gerisi mükemmel. Çok sağolasın.
    rica ederim. set_time_limit(0); versende olurdu. aynı kapıya çıkıyor.