APIで取得した商品情報をphpで一覧表示する
前回は、商品検索APIのリクエストURLについて説明しました。
今回は、phpを使ってAPIの取得結果から商品情報を一覧表示してみます。
リクエスト例は前回と同じ物を使います。(「デジタルカメラ サイバーショット」に関連する商品情報です。)
今回は、phpを使ってAPIの取得結果から商品情報を一覧表示してみます。
リクエスト例は前回と同じ物を使います。(「デジタルカメラ サイバーショット」に関連する商品情報です。)
http://api.kakaku.com/Ver1.1/ItemSearch.aspx?Keyword=%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%AB%E3%83%A1%E3%83%A9%20%E3%82%B5%E3%82%A4%E3%83%90%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88&MaxPrice=30000&SortOrder=pricerank
下の画像は取得結果のサンプルです。
phpのサンプルプログラム(simplexml_load_file())
APIのレスポンスは上記画像を見ても解かるとおり、xml形式で返ってきます。
xml形式の情報をphpで処理するにはsimplexml_load_file()という便利な関数がありますので、この関数を以下のサンプルプログラムでは利用しています。
また、商品情報のレスポンスには様々な情報がありますが、サンプルプログラムでは商品画像、商品名称、商品スペック情報、発売日、満足度、最安値価格、詳細情報URL(価格.comサイト)の7つを使用しています。
その他のレスポンスに関しては、価格.comのAPIマニュアルを参考にしてください。
価格.comの商品検索APIマニュアルページ
それでは、以下にphpのサンプルプログラムを示します。
phpの基本的な文法についてはここでは述べません。
simplexml_load_file()でAPIからのレスポンス(XMLドキュメント)をphpで処理しやすいオブジェクトに変換して$xmlData変数にセットしています。
そして、その後のforeachループ内で各商品情報を生成して出力しています。
xml形式の情報をphpで処理するにはsimplexml_load_file()という便利な関数がありますので、この関数を以下のサンプルプログラムでは利用しています。
また、商品情報のレスポンスには様々な情報がありますが、サンプルプログラムでは商品画像、商品名称、商品スペック情報、発売日、満足度、最安値価格、詳細情報URL(価格.comサイト)の7つを使用しています。
その他のレスポンスに関しては、価格.comのAPIマニュアルを参考にしてください。
それでは、以下にphpのサンプルプログラムを示します。
<?php
$searchWord = "デジタルカメラ サイバーショット"; //検索したい商品キーワード
$url = "http://api.kakaku.com/Ver1.1/ItemSearch.aspx?"
. "&Keyword=".urlencode($searchWord)
. "&MaxPrice=30000"
. "&SortOrder=pricerank";
$xmlData = @simplexml_load_file($url);
//print_r($xmlData);
echo "<table>";
foreach ($xmlData->Item as $itemValue) {
//変数セット
$productName = $itemValue->ProductName; //製品名
$saleDate = $itemValue->SaleDate; //発売日
$comment = $itemValue->Comment; //製品コメント
$totalScoreAve = $itemValue->TotalScoreAve; //満足度
$imageUrl = $itemValue->ImageUrl; //画像URL
$itemPageUrl = $itemValue->ItemPageUrl; //アイテムビューへのURL
$lowestPrice = $itemValue->LowestPrice; //最安価格
echo "<tr>";
//商品画像HTML
echo "<td>";
echo "<img src="{$imageUrl}" alt="{$productName}の画像" />";
echo "</td>";
//商品情報HTML
echo "<td class="itemInfo">";
echo "{$productName}({$comment})<br/>";
echo "発売日:{$saleDate}<br/>";
echo "満足度(5点満点):{$totalScoreAve}<br/>";
echo "最安値価格:{$lowestPrice}<br/>";
echo "<a href="{$itemPageUrl}">価格.comで商品の詳細情報を見る</a>";
echo "</td>";
echo "</tr>";
}
echo "</table>";
?>
phpの基本的な文法についてはここでは述べません。
simplexml_load_file()でAPIからのレスポンス(XMLドキュメント)をphpで処理しやすいオブジェクトに変換して$xmlData変数にセットしています。
そして、その後のforeachループ内で各商品情報を生成して出力しています。
実行結果
