2

Facebook のファン ページにあるフォト アルバムのリストを作成する単純な php スクリプトをハッキングしています。

Facebook は親切にも Graph API を提供してくれます。この API を使用すると、すばらしいアルバムのリストが返されますが、デフォルトのアルバム イメージのパスは提供されなくなりました。

curl を介してアルバムの URL をロードし、サムネイルを含むテーブルの最初の画像のパスを取得する PHP スクリプトを作成したいと考えています。これは、「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 に答える