2013-04-11 63 views
0

好的。我从IMDb上下了一张海报,对于我的生活,我无法弄清楚它为什么不显示 - 我只是得到一个像图像丢失的小问号。这是我当前的代码:使用Simple_HTML_DOM不显示刮痕图像

<?php  
$p = 1; 
foreach($movie_html->find("div[class=image]") as $poster1) 
{ 
    foreach($poster1->find("img") as $poster2) 
    { 
     $p++; 
     if ($p == 1) break; 
    } 
} 
$poster3 = $poster2->src; 
?> 

<img src="<?php echo($poster3); ?>" height="300"/> 

当我只是echo$poster3变量返回的图像(所以我知道代码工作像它应该),但在实际的网页,我不”的正确网址看不到图像。相反,我得到的只是一个小问号,就好像图像不在指定的URL一样。当我右键单击该框并强制Safari在新选项卡中打开图像时,我看到图像恰好坐在那里,非常漂亮!但由于某种原因,它不会显示在我的网站上。

任何想法? IMDb是否将我锁定以防止刮板?或者我的代码中有东西吗?

回答

0

这是如何工作的?

<?php 
/* getIMDB.php 
    -- displays movie poster (and its url as a tool-tip) from an IMDB page 
*/ 
    include_once('../simpleHTML/simple_html_dom.php'); 

    $url = "http://www.imdb.com/title/tt0246578/"; 
    $movie_html = file_get_html($url); 
    outputImg($movie_html); 


function outputImg($movie_html) 
{ 
    $p = 1; 
    foreach($movie_html->find("div[class=image]") as $poster1) 
    { 
     foreach($poster1->find("img") as $poster2) 
     { 
      $p++; 
      if ($p == 1) break; 
     } 
    } 
    $poster3 = $poster2->src; 
    echo "<img src='" . $poster3 . "' title='" . $poster3 . "'/>"; 
} 
?>