使用URL获取Imgur JSON数据

时间:2014-11-18 19:21:54

标签: php curl imgur

我正在查看imgur API,并尝试通过以下API方法获取imgur JSON数据:

https://api.imgur.com/models/image

我已经注册了我的客户端ID,但不知道如何从URL https://api.imgur.com/3/image/{id}获取JSON数据(给定ID)。

如何使用cURL和PHP获取此数据?

这是我尝试过的,但它显然不起作用:

function getImageData() {
    $client_id = "<CLIENT_ID>";

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'https://api.imgur.com/3/image/SbBGk');
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
    curl_exec($ch);
    $lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);

    return $lastUrl;
}

1 个答案:

答案 0 :(得分:1)

这将返回数据。

function getImageData() {
    $client_id = "<CLIENT_ID>";

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'https://api.imgur.com/3/image/SbBGk');
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
    $result = curl_exec($ch);
    curl_close($ch);

    return $result;
}

要获取图片或图库的ID,您需要使用正则表达式解析网址。我对正则表达式并不擅长,但这对你有帮助。我确信有更好的解决方案。

preg_match('#(http(s)?:\/\/(www.|i.)?imgur.com)\/(?!a)(gallery\/)?(([-|~_0-9A-Za-z]+)&?.*?)#i', $link, $matches);
$id = $matches[6];