AmazonAPIã§è¤‡æ•°ã®ä¸­å¤å•†å“を自動検索ã™ã‚‹æ–¹æ³•(PHP)

概è¦

テキストボックスã®å…¥åŠ›å€¤ã‚’å–å¾—
↓
AmazonAPIã¸ã®ãƒ‘ラメータã¨ã—ã¦è‡ªå‹•検索

サンプル

検索1:



$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 ‘


‘.$title.’

. ‘
‘ . ‘æ–°å“価格:’ . $newprice
. ‘
‘ . ‘中å¤ä¾¡æ ¼ï¼š’ . $oldprice
. ‘

‘;
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)/中å¤å“価格ã®è¡¨ç¤ºã€å‚ç…§
    
    
    // 商å“ã‚’ï¼’ã¤è¡¨ç¤ºã™ã‚‹ã¨Loopを抜ã‘ã‚‹
    $loopCnt+=1;
    if($loopCnt==2){
    echo "<br/><br/><br/><br/><br/>";
      break;
    };
  }
?>

Follow me!