我正在查看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;
}
答案 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];