2013-04-06 72 views
0

我有一個從另一個網站的iMDb刮板。它工作得很好,現在iMDb改變了它的html輸出,而正則表達式再也找不到海報了。我在正則表達式一個小白,所以也許有人能幫助我PHP:imdb刮板海報

這是該行

$arr['poster'] = $this->match('/img_primary">.*?<img src="(.*?)".*?<\/td>/ms', $html, 1); 

和功能(也許不計利息)

function match_all($regex, $str, $i = 0) { 
    if(preg_match_all($regex, $str, $matches) === false) 
     return false; 
    else 
     return $matches[$i]; 

這裏是來自iMDb的特定HTML輸出

<td rowspan="2" id="img_primary"> 
<div class="image"> 
<a href="/media/rm3465715968/tt1905041?ref_=tt_ov_i" > 
<img height="317" 
    width="214" 
    alt="Fast and the Furious 6 (2013) Poster" 
    title="Fast and the Furious 6 (2013) Poster" 
    src="http://ia.media-imdb.com/images/M/[email protected]@._V1_SX214_.jpg" 
    itemprop="image" /> 
     </a> 
</div></td> 

有人可以改變我得到JPG的正則表達式嗎?

回答

0

什麼,如果你改變它的

'/img_primary">.*?<img.*?src="(.*?)".*?<\/td>/ms' 

這個工作對我來說:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors',1); 

$regexp = '/img_primary">.*?<img.*?src="(.*?)".*?<\/td>/ms'; 

$string = file_get_contents('test.html'); 

$matches = array(); 
preg_match_all($regexp,$string,$matches); 
var_dump($matches); 
+0

已經嘗試過:空記錄:( – Bubbleboy 2013-04-06 15:10:03

+0

而如果你把你提供的HTML代碼樣本到test.html的發生文件並啓動此腳本? – Alexey 2013-04-06 15:13:36

+0

感謝您的幫助,但我發現了一個很好的imdb-api(http://www.omdbapi.com/)。將示例放入文件並不能幫助其他信息仍然運行。 – Bubbleboy 2013-04-06 15:52:48