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()ですべて表示しています。
<?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.