自分のウェブサイトにキーワードに関連した画像を貼り付けたいと思います。
Googleのイメージ検索(Google Image Search API)を使い、PHPで取得する方法を使います。
API Keyの取得
APIを使うには自分自身のKeyを取得する必要があります。
ここでは関係ないですが、このKeyは他の検索でも同じものを使うことができます。
URL
検索のためのURLを与えるとJSON形式で検索結果が戻ってきます。
基本的なURLは次の通りです。
vはバージョンです。今のところ1.0だそうです。
keyには自分のAPI Keyをセットします。
qには検索語をセットします。日本語のときはURLエンコードする必要があります。また「hl=ja」を付けるとよいでしょう。
具体的な使い方は後述します。
https://ajax.googleapis.com/ajax/services/search/images
v=1.0
key={API Key}
q={検索語}
v=1.0
key={API Key}
q={検索語}
JSON
検索結果はJSON形式で得られます。
PHP5ではJSON形式のデータが簡単に扱えるようになりました。
これだけでJSON形式の文字列を連想配列に取り込むことができます。
ポイントは第2引数です。指定しないとオブジェクト形式になります。「TRUE」を指定すると連想配列になります。
私は連想配列の方が使いやすいので「TRUE」を指定します。
詳しくはYou Look Too Cool » PHPでJSONを使うを参考にしてください。
サンプル
結果
$arrs[0]["id"] => "1"
$arrs[0]["name"] => "taro"
$arrs[1]["id"] => "2"
$arrs[1]["name"] => "jiro"
$arrs[0]["name"] => "taro"
$arrs[1]["id"] => "2"
$arrs[1]["name"] => "jiro"
PHPサンプル
取得した画像データを単純に並べる場合のサンプルを示します。
{API Key}には自分のAPI Keyをセットしてください。
print google_image("シロナガスクジラ");
function google_image($word){
$baseurl="https://ajax.googleapis.com/ajax/services/search/images?";
$baseurl.="v=1.0&hl=ja&key={API Key}&q=";
$myurl=$baseurl.urlencode($word);
$myjson=file_get_contents($myurl);
$recs=json_decode($myjson,true);
$str.="<p>";
foreach($recs[responseData][results] as $rec){
$str.="<img height=150px src=".$rec[unescapedUrl].">";
}
$str.="</p>";
return $str;
}
function google_image($word){
$baseurl="https://ajax.googleapis.com/ajax/services/search/images?";
$baseurl.="v=1.0&hl=ja&key={API Key}&q=";
$myurl=$baseurl.urlencode($word);
$myjson=file_get_contents($myurl);
$recs=json_decode($myjson,true);
$str.="<p>";
foreach($recs[responseData][results] as $rec){
$str.="<img height=150px src=".$rec[unescapedUrl].">";
}
$str.="</p>";
return $str;
}
コメント