Скачивание фото с твитпического URL - PullRequest
2 голосов
/ 13 марта 2011

Есть ли способ загрузить изображение с Twitpic URL? Допустим, я хочу получить следующее фото http://twitpic.com/49275c.

Ответы [ 3 ]

6 голосов
/ 13 марта 2011

Соответствующая ссылка для изображения с идентификатором 49275c задается как

http://twitpic.com/show/full/49275c для полноразмерного изображения.

Замените «полный» на «большой палец» или «мини» для разных размеров.

http://twitpic.com/show/[size]/[image-id]

Вы действительно должны взглянуть на API и повозиться: http://dev.twitpic.com/

1 голос
/ 13 марта 2011

Как отметил @Gordon в комментарии, twitpic, похоже, имеет API - который вы должны использовать для такого рода вещей.

См .: http://dev.twitpic.com/



Теперь, вот старый ответ - забавная, но не очень хорошая идея, учитывая, что есть API:

URL-адрес, который у вас есть, не является URL-адресом самого изображения: это URL-адрес HTML-страницы, на которой отображается изображение, в теге <img>.

Итак, вам нужнодействовать в два этапа:

  • Сначала загрузите эту страницу и извлеките URL-адрес тега <img>.
  • Затем, когда у вас есть URL изображения, вы можетезагрузить его


И вот пример кода, который делает это:

$twitpic_url = 'http://twitpic.com/49275c';

$dom = new DOMDocument();
if (@$dom->loadHTMLFile($twitpic_url)) {
    // HTML loaded successfully
    // => You need to find the right <img> tag
    // Looking at the HTML, you'll see it has id="photo-display"
    $img_tag = $dom->getElementById('photo-display');

    $src = $img_tag->getAttribute('src');

    // Just to be sure, let's display the image's URL
    var_dump($src);

    // Now, you have to download the image which URL is $src
    $img_content = file_get_contents($src);

    // ANd do whatever you want with that binary image content
    // like save if to a file :
    file_put_contents('/tmp/my-image.jpg', $img_content);
}

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

0 голосов
/ 08 марта 2012

Вы можете сделать это прямо из Twitter API, используя параметр entity .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...