APIで取得した画像をphpで一覧表示する
前回、前々回では、FlickrAPIが提供している画像検索メソッド flickr.photos.searchを使用して、画像の検索~画像URLの作成・表示までをやりました。
今回は、phpを使ってflickr.photos.searchで取得した画像情報から画像を一覧表示してみてみます。
リクエスト例は前回と同じ物を使います。(「猫」に関連する画像の要求です。)
(*[取得したキー]の部分は皆さんのFlickrAPIキーに置き換えてください。)
今回は、phpを使ってflickr.photos.searchで取得した画像情報から画像を一覧表示してみてみます。
リクエスト例は前回と同じ物を使います。(「猫」に関連する画像の要求です。)
(*[取得したキー]の部分は皆さんのFlickrAPIキーに置き換えてください。)
http://www.flickr.com/services/rest/?method=flickr.photos.search&format=rest&api_key=[取得したキー]&per_page=20&license=1,2,3,4,5,6&extras=owner_name&text=%E7%8C%AB
サンプルphpプログラム(simplexml_load_file())
phpのサンプルプログラムです。
「猫」に関連する画像を1行に4枚づつ合計20枚表示するプログラムです。
phpの実行環境の用意できる方は、[取得したキー]の部分は皆さんのFlickrAPIキーに置き換えれば実行できると思います。
phpの基本的な文法についてはここでは述べません。
simplexml_load_file()は、APIからのレスポンス(XMLドキュメント)をphpで処理しやすいオブジェクトに変換する関数です。
そして、その後のforeachループ内で画像URL、画像元URL、著作者情報URLを生成して出力しています。
(*画像URLL、画像元URL、著作者情報URLの作成に関しては前回の記事を参考にしてください。)
「猫」に関連する画像を1行に4枚づつ合計20枚表示するプログラムです。
phpの実行環境の用意できる方は、[取得したキー]の部分は皆さんのFlickrAPIキーに置き換えれば実行できると思います。
<?php
define (APIKEY , "[取得したキー]");
$searchWord = "猫"; //検索したい画像のキーワード
$pictureSize = "t"; //画像サイズ
$url = "http://www.flickr.com/services/rest/?"
. "method=flickr.photos.search"
. "&format=rest"
. "&api_key=".APIKEY
. "&per_page=20"
. "&license=1,2,3,4,5,6"
. "&extras=owner_name"
. "&text=".urlencode($searchWord);
$xml = @simplexml_load_file($url);
//print_r($xml);
$iLoop = 0;
echo "<table>";
foreach($xml->photos->photo as $photoValue){
if( $iLoop == 0){
echo "<tr><td>";
} else {
echo "<td>";
}
$farmId = $photoValue['farm'];
$serverId = $photoValue['server'];
$photoId = $photoValue['id'];
$secret = $photoValue['secret'];
$owner = $photoValue['owner'];
$ownername = $photoValue['ownername'];
//改行はレイアウトのため
echo "<a href=\"http://www.flickr.com/photos/{$owner}/{$photoId}/\">
<img src=\"http://farm{$farmId}.static.flickr.com/{$serverId}/
{$photoId}_{$secret}_{$pictureSize}.jpg\" /></a><br>";
echo "author by <a href=\"http://www.flickr.com/photos/{$owner}/\">
{$ownername}</a>";
$iLoop++;
if( $iLoop == 4){
echo "</td></tr>";
$iLoop = 0;
} else {
echo "</td>";
}
}
if( $iLoop != 0 ){
echo "</tr>";
}
echo "</table>";
?>
phpの基本的な文法についてはここでは述べません。
simplexml_load_file()は、APIからのレスポンス(XMLドキュメント)をphpで処理しやすいオブジェクトに変換する関数です。
そして、その後のforeachループ内で画像URL、画像元URL、著作者情報URLを生成して出力しています。
(*画像URLL、画像元URL、著作者情報URLの作成に関しては前回の記事を参考にしてください。)
実行結果
上記phpプログラムの実行結果です。
猫の画像が20枚表示されています。
猫の画像が20枚表示されています。
![]() author by sakuraquiet | ![]() author by Noelas | ![]() author by Noelas | ![]() author by hisashi_0822 |
![]() author by hisashi_0822 | ![]() author by hisashi_0822 | ![]() author by hisashi_0822 | ![]() author by hisashi_0822 |
![]() author by hisashi_0822 | ![]() author by hisashi_0822 | ![]() author by hisashi_0822 | ![]() author by hisashi_0822 |
![]() author by hisashi_0822 | ![]() author by hisashi_0822 | ![]() author by hisashi_0822 | ![]() author by hisashi_0822 |
![]() author by hisashi_0822 | ![]() author by hisashi_0822 | ![]() author by hisashi_0822 | ![]() author by helloraine |
watchout(投稿日時 : 2009/11/12 19:24:24)
$searchWord = mb_convert_encoding($searchWord,"UTF-8","auto");
を追加してUTF-8にしてから、urlencodeする必要がありそうです。
を追加してUTF-8にしてから、urlencodeする必要がありそうです。
てっちん(投稿日時 : 2009/04/12 07:50:46)
動きませんがな。。。



















