我正在编写一个简单的 php 脚本,它将构建我的 Facebook 粉丝页面上的相册列表。
Facebook 提供了 Graph 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&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&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&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>
遗憾的是,这超出了我当前的编码能力......有什么想法吗?
您可以使用 phpsimpledom 使用 jQuery 样式语法来获取路径。
注意:Facebook 可能有多个图像集群,因此照片的 URL 可能会随着时间的推移而改变。
你有几种可能性:
1)优雅的,你从你的 html 样本中制作一棵 dom 树并提取你的标签
2)不太优雅但高效,您可以使用正则表达式来提取该信息
您可以使用
将站点源代码拉入字符串中 $url = “http://www.foo.com”;
$str = file_get_contents($url);
如果没有适合您需求的正则表达式,我只能说,在以前的经验中,我使用了大量条件语句并严重依赖 substr(),但这可能并不明智。