1

我花了一个多小时研究这个并阅读了大量的教程。

imgur 有一个 api,可以生成像这样的图像 http://imgur.com/api/upload/?url=http://avatars.stocktwits.net/production/8483/thumb-1350729865.png

我试图在 curl 中获取输出图像,但无法显示任何内容。

<?php

$full = 'http://www.winningportfolio.com/images/styles/iBusiness/style/iconYoutube.png';

function get_image($url)  
{  
    $ch = curl_init();  
    $timeout = 5;  
    curl_setopt($ch,CURLOPT_URL,'http://imgur.com/api/upload/?url='.$url);  
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);  
    $data = curl_exec($ch);  
    curl_close($ch);  
    return $data;  
}

//test it out!
$new_url = get_image($full);

echo $new_url;

?>
4

1 回答 1

0

这应该工作:

function get_image($url)
{
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'http://imgur.com/api/upload/?url=' . urlencode($url));
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);
    return $lastUrl;
}

$full = 'http://www.winningportfolio.com/images/styles/iBusiness/style/iconYoutube.png';
var_dump( get_image($full) );
  • $url应该是urlencoded
  • 当您以这种方式上传照片时,会发生重定向,因此必须遵循
  • 如果我了解您的函数返回新网址?这可以通过curl_getinfo()
于 2013-09-03T23:34:31.243 回答