imgurとは?
よく2ちゃんで利用されている最強画像アップローダーのimgur、ご存知でしょうか?
匿名で画像アップロードできて、なおかつ無期限で保存されているので便利です。
これを今回はPHPから使ってみます。結果はjsonで取れます。
ちなみにRuby編なら既存でありました。こちらです。
最強の画像アップロードサイト「Imgur.com」のAPIを利用する(匿名画像アップロード編)
ImgurAPIをPHPで利用
API叩いてみましょう。
環境
・PHP7
会員登録
まずはimgurで会員登録してください。登録後ログインします。
クライアントID取得
会員登録しログインしたら、まずはクライアントIDを取得します。
Register an Application
を埋めていきます。

Application nameとAuthorization typeを埋めましょう。
今回はAnonymousにします。
callback URLは適切なものをお願いします。
あとメアドも入力します。
以上でSubmit!
さっそくPHPで利用してみる。
jsonで返ってくるようにしてあります。適当に利用してください。
index.php
<?
if(isset($_FILES['img'])) $img = $_FILES['img'];
if(isset($_POST['submit'])){
if($img['name']==''){
echo "画像を選択してください";
}else{
$filename = $img['tmp_name'];
$client_id="abb66f6794xa77c";//各自のクライアントIDを入力
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));
$pvars = array('image' => base64_encode($data));
$timeout = 30;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
$out = curl_exec($curl);
curl_close ($curl);
$pms = json_decode($out,true);
var_dump($pms);
}
} else {
print<<<EOF
<form action="index.php" enctype="multipart/form-data" method="POST">
<input name="img" size="35" type="file"/><br/>
<input type="submit" name="submit" value="アップロード"/>
</form>
EOF;
}