**ขอตั้งกระทู้ใหม่นะครับ กระทู้เดิมเข้าหน้าสองแล้ว ขาวหมดเลยทำให้ไม่สามารถตั้งคำถามและตอบคำถามได้ครับ
Amazon Quick Listอยากแบ่งอะไรให้กับคนในบอร์ดบ้างครับ เห็นมีหลายท่านถามหา ก็เลยลองนั่งโมดูครับ
เป็นไฟล์ php ดึง api ของ amazon มาแต่เฉพาะ ASIN กับ Product Name นะครับ ทำให้ก๊อป ASIN เอาไปใช้กันง่ายๆ ไม่ได้ทำแบบ node นะครับ เพราะว่าจะได้ไม่ต้องมาเสียเวลาค้นหา เลข node กัน ตัวนี้ใช้ .htaccess เป็นตัวช่วยให้สามารถคลิ๊กไปที่ หน้าต่อๆไปเพื่อก๊อปๆๆๆๆ ได้อย่างสะดวกครับ
เอาไปลองใช้กันเลย
index.php
<style type="text/css">
<!--
body,td,th {
font-family: Tahoma;
font-size: 12px;
color: #333333;
}
body {
margin-left: 30px;
margin-top: 30px;
margin-right: 30px;
margin-bottom: 30px;
}
h1,h2,h3,h4,h5,h6 {
font-weight: bold;
}
h1 {
font-size: 18px;
}
-->
</style>
<h1>Amazon Quick List</h1>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="5">
<tr>
<td><form accept-charset="UTF-8" id="search" name="search" method="get" action="index.php">
Category:
<select name="category" id="category">
<option value="Blended">All (-title)</option>
<option value="Books">Books</option>
<option value="Music">Music</option>
<option value="DigitalMusic">DigitalMusic</option>
<option value="Classical">Classical</option>
<option value="DVD">DVD</option>
<option value="VHS">VHS</option>
<option value="Apparel">Apparel</option>
<option value="Toys">Toys</option>
<option value="Baby">Baby</option>
<option value="PCHardware">PCHardware</option>
<option value="VideoGames">VideoGames</option>
<option value="Electronics">Electronics</option>
<option value="Photo">Photo</option>
<option value="Software">Software</option>
<option value="Tools">Tools</option>
<option value="OfficeProducts">OfficeProducts</option>
<option value="Magazines">Magazines</option>
<option value="SportingGoods">SportingGoods</option>
<option value="OutdoorLiving">OutdoorLiving</option>
<option value="Kitchen">Kitchen</option>
<option value="Jewelry">Jewelry</option>
<option value="Beauty">Beauty</option>
<option value="GourmetFood">GourmetFood</option>
<option value="MusicalInstruments">MusicalInstruments</option>
<option value="HealthPersonalCare">HealthPersonalCare</option>
<option value="PetSupplies">PetSupplies</option>
<option value="Automotive">Automotive</option>
<option value="Video">Video</option>
<option value="Wireless">Wireless</option>
<option value="Watches">Watches</option>
</select>
Keyword:
<input name="keywords" type="text" id="keywords" size="25" maxlength="255">
Title:
<input name="title" type="text" id="title" size="18" maxlength="255">
<input type="submit" name="Submit" value="Submit">
</form></td>
</tr>
</table>
<?php
//--- EDIT CONFIG ---//
$public_key = "1BZ8XEWYCAHTWCV8J902";
$private_key = "2MtDFk3C6AjuIriwP2Qq1ipZ/Eo1OHelTkjMpw2a";
$AssociateTag = "ablestuff-20";
//--- END EDIT CONFIG ---//
$site_url = $_SERVER["SERVER_NAME"];
$category = $_REQUEST['category'];
$keywords = $_REQUEST['keywords'];
$title = $_REQUEST['title'];
$page = $_REQUEST['page'];
$all = 50;
$CFG['amount_link_page'] = 5;
if(empty($CFG['amount_link_page'])) $show = $all; else
$show = $CFG['amount_link_page'];
$now = $page;
$start = ($now <= $show) ? 1 : $now-$show;
$end = (($all-$now)<$show ? $all+1 : $now+$show);
for($i=$start; $i<$end; $i++) {
if($i == 1 && empty($search) && $i!=$now)
$a_nav .= " <a href=\"http://$site_url/".$category."-".$keywords."-".$title."-1.html\">1</a> ";
elseif($i!=$now) $a_nav .= " <a href=\"http://$site_url/".$category."-".$keywords."-".$title."-$i.html\">$i</a> ";
else $a_nav .="<b>[".$i."]</b>";
}
//$category = "Electronics";
//$page = "1";
//$keywords = "mp3";
//$title = "sony";
function makeAWSUrl($parameters, $associate_tag, $access_key, $secret_key, $aws_version = '2009-10-01') {
$host = 'ecs.amazonaws.com';
$path = '/onca/xml';
$query = array(
'Service' => 'AWSECommerceService',
'AWSAccessKeyId' => $access_key,
'AssociateTag' => $associate_tag,
'Timestamp' => gmdate('Y-m-d\TH:i:s\Z'),
'Version' => $aws_version,
);
if (is_array($parameters)) {
$query = array_merge($query, $parameters);
}
ksort($query);
$temp = array();
foreach ($query as $k => $v) {
$temp[] = str_replace('%7E', '~', rawurlencode($k)) . '=' . str_replace('%7E', '~', rawurlencode($v));
}
$signable = implode('&', $temp);
$stringToSign = "GET\n$host\n$path\n$signable";
$hex_str = hash_hmac('sha256', $stringToSign, $secret_key);
$raw = '';
for ($i = 0; $i < strlen($hex_str); $i += 2) {
$raw .= chr(hexdec(substr($hex_str, $i, 2)));
}
$query['Signature'] = base64_encode($raw);
ksort($query);
$temp = array();
foreach ($query as $k => $v) {
$temp[] = rawurlencode($k) . '=' . rawurlencode($v);
}
$final = implode('&', $temp);
return 'http://' . $host . $path . '?' . $final;
}
$url = makeAWSUrl(array('Title' => $title, 'ItemPage' => $page, 'Keywords' => $keywords, 'Operation' => 'ItemSearch', 'ResponseGroup' => 'Small', 'SearchIndex' => $category), $AssociateTag, $public_key, $private_key);
$xml = simplexml_load_file ($url);
$ii = 0;
foreach($xml->Items as $results) {
$totalresults = $results->TotalResults;
$totalpages = $results->TotalPages;
echo "<p>Total Results is: $totalresults<br />Total Pages is: $totalpages</p>";
}
echo "<p>$a_nav</p>";
$iii = 0;
foreach($xml->Items->Item as $item) {
$ASIN = $item->ASIN;
$Name = $item->ItemAttributes->Title;
echo "$ASIN -> $Name<br />";
}
echo "<p>To copy:</p>";
$iiii = 0;
foreach($xml->Items->Item as $itemcopy) {
$ASINcopy = $itemcopy->ASIN;
echo "$ASINcopy<br />";
}
?>
แก้ไขไฟล์ index.php ในบรรทัด นี้ใส่ ID ของตัวเองก่อนครับ
//--- EDIT CONFIG ---//
$public_key = "1BZ8XEWYCAHTWCV8J902";
$private_key = "2MtDFk3C6AjuIriwP2Qq1ipZ/Eo1OHelTkjMpw2a";
$AssociateTag = "ablestuff-20";
//--- END EDIT CONFIG ---//
.htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)-([^/]*)-([^/]*)-([^/]*)\.html$ //index.php?category=$1&keywords=$2&title=$3&page=$4 [L]
การติดตั้งก็สุดง่ายครับ สร้างซับโดเมนขึ้นมา หรือไม่ก็ใส่ลงใน appserv เลย ให้สองไฟล์นี้อยู่ใน folder เดียวกัน

copy code ที่ผมแยกไว้ให้ save เป็นสองไฟล์ตามรูปครับ index.php กับ .htaccess ครับ
ถ้าไม่ได้ให้ลองปรับเป็น php5 ครับ หรือไม่ก็ลองตรวจสอบโอสต์ดูว่าเปิดให้ใช้งาน .htaccess หรือเปล่าครับ
วิธีใช้*
1. ถ้า search แบบ All ไม่ต้องใส่ keyword ใน ช่อง title ครับ
2. ถ้า search แบบ Category ให้ใส่ keyword แล้วใส่ Title เพื่อกำหนดให้ดึงสินค้ามี Title ตามที่เราใส่ไปครับ
**เพิ่มเติมครับ
การทำให้ appserv ใช้งาน mod rewrite ได้ ก็ให้เข้าไปที่ start > appserv > configuration server > edit httpd.conf ครับ
พอเปิดออกมาแล้วให้ search คำว่า rewrite ครับ ตามรูป

จากนั้นให้เอาเครื่องหมาย # ที่หน้าบรรทัดของ mod rewrite ออกครับ แล้ว save จากนั้นให้ start เครื่องใหม่เพื่อให้ appserv ทำงาน
ลองเอาใช้ดูครับ หวังว่าคงชอบกันนะ
