获取正确的图像网址

时间:2012-11-23 14:03:55

标签: php

我在下面有这个图片链接:

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

但是如果你点击它并在浏览器中查看它,图像文件的实际网址是:

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

任何想法如何解析上面的图像链接以使用php获取实际的jpg文件?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

使用get_headers(),并获取Location:标题:

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

注意:

这是最基本的版本,只要只有1个重定向,它就会起作用。如果您遇到更复杂的问题,请使用@ aykut的解决方案。

答案 2 :(得分:0)

您也可以这样做:

header('Content-type:image/png');
$file=file_get_contents($url);