2012-11-23 3 views
3

у меня есть эта ссылка изображение ниже:получать правильный URL изображения

http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&ASIN=B008EYEYBA&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=mytwitterpage-20 

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

http://ecx.images-amazon.com/images/I/418lsVTc0aL._SL110_.jpg 

любая идея, как я могу разобрать ссылку на изображение выше, чтобы получить фактический файл jpg с помощью php?

ответ

5
<?php 

function get_url($url) { 
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    curl_exec($ch); 

    if (!curl_errno($ch)) { 
     $url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); 
    } 

    curl_close($ch); 

    return $url; 
} 

echo get_url("http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&ASIN=B008EYEYBA&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=mytwitterpage-20"); 

Source

+0

удивительный, легкий и простой для понимания, большой ответ! –

+0

он работает! спасибо айкут! – anagnam

0

Использование get_headers() и получить Location: заголовок:

$headers = get_headers($url); 
echo $headers['Location']; 

Примечание:

Это самая основная версия, и она будет работать до тех пор, пока существует только 1 перенаправление. Если вы столкнулись с более сложными проблемами, используйте решение @ aykut.

0

Вы также могли бы сделать что-то вроде этого:

header('Content-type:image/png'); 
$file=file_get_contents($url); 
Смежные вопросы