AmazonAPIで複数の中古商品を自動検索する方法(PHP)
概要
テキストボックスの入力値を取得
↓
AmazonAPIへのパラメータとして自動検索
サンプル
$v) {
$base_request .= “&” . $k . “=” . $v;
}
$base_request = $baseurl . “?” . substr($base_request, 1);
/* 1.タイムスタンプを付ける */
$params[“Timestamp”] = gmdate(“Y-m-d\TH:i:s\Z”);
$base_request .= “&Timestamp=” . $params[‘Timestamp’];
$base_request = “”;
foreach ($params as $k => $v) {
$base_request .= ‘&’ . $k . ‘=’ . rawurlencode($v);
$params[$k] = rawurlencode($v);
}
$base_request = $baseurl . “?” . substr($base_request, 1);
$base_request = preg_replace(“/.*\?/”, “”, $base_request);
$base_request = str_replace(“&”, “\n”, $base_request);
ksort($params);
$base_request = “”;
foreach ($params as $k => $v) {
$base_request .= “&” . $k . “=” . $v;
}
$base_request = substr($base_request, 1);
$base_request = str_replace(“&”, “\n”, $base_request);
$base_request = str_replace(“\n”, “&”, $base_request);
$parsed_url = parse_url($baseurl);
$base_request = “GET\n” . $parsed_url[‘host’] . “\n” . $parsed_url[‘path’] . “\n” . $base_request;
$signature = base64_encode(hash_hmac(‘sha256’, $base_request, Secret_Access_Key, true));
$signature = rawurlencode($signature);
$base_request = “”;
foreach ($params as $k => $v) {
$base_request .= “&” . $k . “=” . $v;
}
$base_request = $baseurl . “?” . substr($base_request, 1) . “&Signature=” . $signature;
echo “検索” . $index . “:結果
“;
$loopCnt=0; //Loop集計用
$amazon_xml=simplexml_load_string(@file_get_contents($base_request));
foreach((object)$amazon_xml->Items->Item as $item_a=>$item){
$title=$item->ItemAttributes->Title; //商品名
$newprice=$item->ItemAttributes->ListPrice->FormattedPrice; //New価格
$oldprice=$item->OfferSummary->LowestUsedPrice->FormattedPrice; //Old価格
$detail=$item->DetailPageURL; //商品のURL
$image=$item->MediumImage->URL; //画像のURL
print ‘
‘;
print ‘
‘;
unset($item);
// Loop抜け
$loopCnt+=1;
if($loopCnt==2){
echo “
“;
break;
};
}
}
?>
コード
<form name="myForm" action="#" method="POST">
検索1:<input type="text" name="box1"
value="<?= $_REQUEST['box1'] ?>" /><br/>
検索2:<input type="text" name="box2"
value="<?= $_REQUEST['box2'] ?>" /><br/>
検索3:<input type="text" name="box3"
value="<?= $_REQUEST['box3'] ?>" /><br/><br/>
<input type="submit" value="検索" /><br/><br/>
</form>
<?php
// フォームより読み取ったデータを取得
if(isset($_POST['box1'])) {
$keywords1 = $_POST['box1'];
}
if(isset($_POST['box2'])) {
$keywords2 = $_POST['box2'];
}
if(isset($_POST['box3'])) {
$keywords3 = $_POST['box3'];
}
// ↑テキストボックスの入力値を引数として「商品検索&表示処理」を呼び出し
getprice(1, "Books", $keywords1);
getprice(2, "Books", $keywords2);
getprice(3, "Books", $keywords3);
// 商品検索&表示処理 を定義
function getprice($index, $searchIndex, $keywords)
{
// Amazonへのリクエスト作成
「AmazonAPIで商品を自動検索する方法(PHP)」参照
echo "検索" . $index . ":結果<br/>";
//Loop集計用
$loopCnt=0;
// 取得したXMLデータから価格データの抽出&表示
「AmazonAPIで中古商品を自動検索する方法(PHP)/中古品価格の表示」参照
// 商品を2つ表示するとLoopを抜ける
$loopCnt+=1;
if($loopCnt==2){
echo "<br/><br/><br/><br/><br/>";
break;
};
}
?>