2

我正在编写一个简单的 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&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>

可悲的是,这超出了我目前的编码能力......有什么想法吗?

4

3 回答 3

1

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

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

于 2010-07-26T14:06:32.713 回答
0

你有几种可能性:

1)优雅的,你从你的html样本中制作一个dom树并提取你的标签

2)不太优雅但高效,您可以使用正则表达式来提取该信息

于 2010-07-26T14:02:58.540 回答
0

您可以将站点源代码拉成一个字符串

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

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

于 2010-07-26T14:05:32.420 回答