2010-07-26 40 views
2

我在一起简单的PHP脚本,将建立我在我的Facebook粉丝页上的相册列表。刮一个网站的URL来获取图像的路径

Facebook慷慨地提供图形API,它给了我一个很好的相册列表,但它们不再提供默认相册图像的路径。

我想编写一个PHP脚本,通过curl加载相册url,并以某种方式获取包含缩略图的表中第一个图像的路径。这将是具有“UIPhotoGrid_Image”类的第一个img标签的“src”值。

的布局代码包含的好东西块看起来是这样的:

<div id="album_container"> 
    <div class="UIPhotoGrid_Container UIPhotoGrid_DefaultPadding"> 
     <table class="UIPhotoGrid_Table" cellpadding="0" cellspacing="0"> 
      <tr> 
       <td class="UIPhotoGrid_TableCell"> 
        <a class="UIPhotoGrid_PhotoLink clearfix" href="http://www.facebook.com/photo.php?pid=5004658&amp;id=20785087272"><img class="UIPhotoGrid_Image img" src="http://photos-e.ak.fbcdn.net/hphotos-ak-snc4/hs080.snc4/35354_422883027272_20785087272_5004658_704231_s.jpg" onload="this.fb_loaded = true;" /></a> 
       </td> 
       <td class="UIPhotoGrid_TableCell"> 
        <a class="UIPhotoGrid_PhotoLink clearfix" href="http://www.facebook.com/photo.php?pid=5004659&amp;id=20785087272"><img class="UIPhotoGrid_Image img" src="http://photos-c.ak.fbcdn.net/hphotos-ak-snc4/hs080.snc4/35354_422883032272_20785087272_5004659_6158094_s.jpg" onload="this.fb_loaded = true;" /></a> 
       </td> 
       <td class="UIPhotoGrid_TableCell"> 
        <a class="UIPhotoGrid_PhotoLink clearfix" href="http://www.facebook.com/photo.php?pid=5004660&amp;id=20785087272"><img class="UIPhotoGrid_Image img" src="http://photos-f.ak.fbcdn.net/hphotos-ak-snc4/hs080.snc4/35354_422883037272_20785087272_5004660_1787119_s.jpg" onload="this.fb_loaded = true;" /></a> 
       </td> 
      </tr> 
     </table> 
    </div> 
</div> 

这可悲的,是超出了我目前的编码能力......任何想法?

回答

1

您可以使用phpsimpledom来使用jQuery样式语法获取路径。

注意:Facebook可能有几个图像集群,因此照片的URL可能随时间而改变。

0

您有几种可能性:

1)优雅的一个,你从你的HTML样本进行DOM树和提取您的标记

2)不太优雅,但有效的,你可以使用正则表达式提取信息

0

您可以拉动网站源成字符串

$url = “http://www.foo.com”; 
    $str = file_get_contents($url); 

如果没有一个适合您需要的正则表达式,我只能说在以前的经验中我使用了很多条件语句,并严重依赖于substr(),但这可能不是明智的。