【问题标题】:getting the correct image url获取正确的图片网址
【发布时间】:2012-11-23 14:03:54
【问题描述】:

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

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

知道如何解析上面的图片链接以使用 php 获取实际的 jpg 文件吗?

【问题讨论】:

    标签: php


    【解决方案1】:
    <?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

    【讨论】:

    • 棒极了,通俗易懂,很好的答案!
    【解决方案2】:

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

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

    注意:

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

    【讨论】:

      【解决方案3】:

      你也可以这样做:

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

      【讨论】:

        猜你喜欢
        • 2011-06-07
        • 1970-01-01
        • 2017-10-17
        • 2018-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-11
        相关资源
        最近更新 更多