後編 WebサービスをAmazonで知る――PHPでECS 4.0を使うテクニック(3/5 ページ)

» 2005年02月25日 12時40分 公開
[金子 順,ITmedia]

ECSアクセスクラスを利用するアプリケーション例

 ECSアクセスクラスを、ecs.phpというファイル名で保存したら、次はアプリケーション本体です。ここではview.phpというスクリプトを作成します。

 view.phpには、具体的なアプリケーションの内容を記述します。今回は、ECSをキーワード検索し、検索結果を表示するアプリケーションを作成してみます。アプリケーションからのECSアクセスクラスの利用手順は以下のようになります。

1. ECSアクセスクラスをインスタンス化する

$ecs = new Ecs();

2. キーワード検索のパラメーターをセット

$ecs->set_keyword($keyword,$index,$page);

3. ECS 4.0への問い合わせを実行

$ecs->loadXML();

4. 商品情報を表示する

print $ecs->xml->Items->Item->ItemAttributes->Title;

 最後の「商品情報を表示」の際に、SimpleXMLモジュールを利用するメリットが発揮されます。ほとんどXMLであることを意識せず、オブジェクト内の変数を参照するような形で、Amazonから取得した商品情報を表示することができます。

 以下は、アプリケーションスクリプトのサンプルコードです。このview.phpでは、検索窓を表示して、そこから入力されたキーワードを、ECSアクセスクラス(ecs.php)のインスタンスに渡し、検索結果のXMLをforeach()ですべて表示しています。

リスト2■サンプルソースコード〜view.php
<?php

include_once ("ecs.php");

// 検索に必要なパラメータを取得、設定
$keyword = !empty($_GET['keyword']) ? $_GET['keyword'] : "ブログ";
$index = "Blended";
$page = "1";

// ECS 4.0に接続するためのクラスをインスタンス化
$ecs = new Ecs();
// キーワード検索のパラメーターをセット
$result = $ecs->set_keyword(urlencode($keyword),$index,$page);
// ECS 4.0への問い合わせを実行
$result = $ecs->loadXML();

// ページのHTMLを出力
@header('Content-Type: text/html; charset=UTF-8');
@header('Content-Language: ja');

echo <<<EOT
<html><head>
<title>PHPでECS 4.0!</title>
</head><body>
ECS 4.0を検索<br />
<form method="GET" action="./view.php">
<input type="text" name="keyword" value="$keyword"> <input type="submit" value="検索">
</form><br />
検索結果<br /><hr />
EOT;

// ECSの検索が成功したら、内容を表示
if ($result)
{
// Itemの数だけ、商品を表示
foreach ($ecs->xml->Items->Item as $item)
{
print '<a href="' . $item->DetailPageURL . '">';
print $item->ItemAttributes->Title . "</a><br />";
print $item->ItemAttributes->Creator[0] . "<br />";
print "売り上げランキング " . $item->SalesRank . "<br />";
print $item->OfferSummary->LowestNewPrice->FormattedPrice . "<br />";

if ($item->MediumImage->URL != "")
{
print '<img src="' . $item->MediumImage->URL . '" border="0">';
}
print "<br /><br />";
}
} else {
print "Error : ECSへの接続に失敗しました";
}

echo <<<EOT
</body></html>
EOT;
?>

 このように、ECS 4.0への接続をECSアクセスクラスに集約することで、さまざまな機能のPHPスクリプトから利用することができます。

 そして、さらなるアイデアとして次のようなものが挙げられます。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ