最もずるい方法でサイトのキャプチャ画像を自分のサーバーに保存する方法 ITかあさん

ITかあさん

最もずるい方法でサイトのキャプチャ画像を自分のサーバーに保存する方法

最もずるい方法でサイトのキャプチャ画像を自分のサーバーに保存する方法

現在目下趣味で制作中のレスポンシブウェブデザインのまとめサイトを作っています。
この手のまとめサイトを作るといつも気になるのがWEBサイトのキャプチャ画像をお手軽に作る方法です。

サムネイルAPIサービスまとめ

いえいえ、この手のAPIが存在していることははなから百も承知。問題はキャプチャしたサムネイルの画像URLが外部APIサービスのURLになってしまうこと。

キャプチャのサンプル

http://www.kaasan.info/

画像のURL

http://capture.heartrails.com/400×300?http://www.kaasan.info/

もしもこのAPIサービスが無くなったら?あんたどうしますか!

この手のキャプチャサービスは、サーバーに相当な負荷がかかるため、しかも無料で運営されておりいつか使っているサムネイルのキャプチャサービスが無くなる可能性だってありますし、自分のサーバーに画像を保存しておかない限り、自サーバーにキャッシュ化させるのも難しいですね。

最もずるい方法でサイトのキャプチャ画像を自分のサーバーに保存する方法

前置きが長くなりましたが、ずるい方法でキャプチャ画像を自サーバーに保存する最も簡単で最もずるい方法です。
たった5行。

if (file_exists('./img/hoge.jpg')){
} else{
$imgdata = file_get_contents("http://capture.heartrails.com/400x300?http://www.kaasan.info/" , FILE_BINARY);
file_put_contents("./img/hoge.jpg" , $imgdata);
}

解説

キャプチャファイルの存在をfile_existsでチェックし、存在しなければキャプチャファイルを取得します。
file_get_contents関数でファイルを取得(外部APIサービスで一度作成された画像ファイルのURL)して、自分のサーバーにfile_put_contentsで設置する。

たったのこれだけで自分のサーバーにキャプチャ画像を保存することが出来ました。
簡単ですね!

初夏のJavaScript祭 in サーキュレーションビル ForPro