【问题标题】:Get Imgur JSON data with URL获取带有 URL 的 Imgur JSON 数据
【发布时间】:2014-11-19 03:51:00
【问题描述】:

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

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

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

如何使用 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;
}

【问题讨论】:

  • 我已经尝试了其他 stackoverflow 问题的几个答案,但没有一个返回我需要的数据。我用我现在所拥有的内容更新了这个问题。
  • 你没有保存数据$result = curl_exec($ch);然后做var_dump($result, curl_getinfo());
  • 谢谢。做到了。还有一个问题。给定一个 imgur 链接(如 https://imgur.com/gallery/s2Bqqhttps://i.imgur.com/DY1XsA2.jpg),我将如何获取图像的 ID(分别为 s2BqqDY1XsA2)?

标签: php curl imgur


【解决方案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,您需要使用正则表达式解析 url。我不擅长正则表达式,但这应该对你有所帮助。我确信有更好的解决方案。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    相关资源
    最近更新 更多