Очистите URL сайта, чтобы получить путь к изображению - PullRequest
2 голосов
/ 26 июля 2010

Я работаю над простым php-скриптом, который создаст список фотоальбомов, которые у меня есть на моей фан-странице в Facebook.

Facebook любезно предлагает Graph API, который возвращает мне хороший список альбомов,однако они больше не предоставляют путь к изображению альбома по умолчанию.

Я хочу написать PHP-скрипт, который загружает URL-адрес альбома с помощью curl и каким-то образом получает путь к первому изображению в таблице, содержащей миниатюры.Это будет значение "src" первого тега img, который имеет класс "UIPhotoGrid_Image".

Блок кода макета, содержащий полезные вещи, выглядит следующим образом:

<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>

Это, к сожалению, выходит за рамки моих текущих возможностей кодирования ... Есть идеи?

Ответы [ 3 ]

1 голос
/ 26 июля 2010

Вы можете использовать phpsimpledom , чтобы получить путь, используя синтаксис стиля jQuery.

Примечание. Возможно, в Facebook имеется несколько кластеров изображений, поэтому URL-адрес фотографии может со временем меняться.

0 голосов
/ 26 июля 2010

Вы можете вытянуть источник сайта в строку с помощью

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

Без регулярного выражения, которое будет соответствовать вашим потребностям, я могу только сказать, что в предыдущем опыте я использовал много условных выражений и в значительной степени полагался на substr (), однако это, вероятно, не разумно.

0 голосов
/ 26 июля 2010

У вас есть несколько возможностей:

1) элегантный, вы делаете dom tree из вашего образца HTML и извлекаете свой тег

2) менее элегантным, но эффективнымВы можете использовать регулярное выражение для извлечения этой информации

...