FC2ブログ

<?php
// 検索ワード
$Get_Keyword = ereg_replace("[  ]+", " ", trim($_GET['query']));
$Get_Keyword_enc = urlencode($Get_Keyword);
$Get_Keyword_enc_utf = urlencode(mb_convert_encoding($Get_Keyword, "UTF-8", "EUC-JP"));


// リクエストパラメータ
$Yahoo = "http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch";
$appid = "?appid="."";
// $affiliate_type = "?affiliate_type="."";
// $affiliate_id = "&affiliate_id="."";
// $callback = "&callback="."";
$query = "&query=".$Get_Keyword_enc_utf;
$type = "&type="."all";
// $jan = "&jan="."";
// $isbn = "&isbn="."";
// $category_id = "&category_id="."";
// $product_id = "&product_id="."";
// $person_id = "&person_id="."";
// $brand_id = "&brand_id="."";
// $store_id = "&store_id="."";
$price_from = "&price_from="."";
$price_to = "&price_to="."";
$hits = "&hits="."20";
$offset = "&offset="."0";
$sort = "&sort="."";
$affiliate_from = "&affiliate_from="."";
$affiliate_to = "&affiliate_to="."";
$module = "&module="."";
$availability = "&availability="."";
$discount = "&discount="."";
$shipping = "&shipping="."";

// XML
$url = $Yahoo.$appid.$affiliate_type.$affiliate_id.$callback.$query.$type.$jan.$isbn.$category_id.$product_id.$person_id.$brand_id.$store_id.$price_from.$price_to.$hits.$offset.$sort.$affiliate_from.$affiliate_to.$module.$availability.$discount.$shipping;
$xmldata = simplexml_load_file($url) or die("XMLパースエラー");

$totalResultsAvailable = $xmldata['totalResultsAvailable'];
$totalResultsReturned = $xmldata['totalResultsReturned'];
$firstResultPosition = $xmldata['firstResultPosition'];
$Request_Query = mb_convert_encoding($xmldata->Result->Request->Query, "EUC-JP", "UTF-8");

print $totalResultsAvailable."<br />";
print $totalResultsReturned."<br />";
print $firstResultPosition."<br />";
print $Request_Query."<br />";

foreach($xmldata->Result->Hit as $value){
$Hit_index = $value["index"];
$Url = $value->Url;
$Name = mb_convert_encoding($value->Name, "EUC-JP", "UTF-8");
$Description = mb_convert_encoding($value->Description, "EUC-JP", "UTF-8");
$Headline = mb_convert_encoding($value->Headline, "EUC-JP", "UTF-8");
$Availability = $value->Availability;
$Code = $value->Code;
$PersonId = $value->PersonId;
$ProductId = $value->ProductId;
$JanCode = $value->JanCode;
$IsbnCode = $value->IsbnCode;
$Model = $value->Model;
$Store_Id = $value->Store->Id;
$Store_Url = $value->Store->Url;
$Store_Name = mb_convert_encoding($value->Store->Name, "EUC-JP", "UTF-8");
// 支払い方法
foreach($value->Store->Payment->Method as $method){
$Payment_Method_Code[] = $method->Code;
$Payment_Method_Name[] = mb_convert_encoding($method->Name, "EUC-JP", "UTF-8");
}
$Store_IsBestStore = $value->Store->IsBestStore;
$Store_Ratings_Rate = $value->Store->Ratings->Rate;
$Store_Ratings_Count = $value->Store->Ratings->Count;
$Store_Image = $value->Store->Image->Id;
$Store_Image_Medium = $value->Store->Image->Medium;
$Image_Id = $value->Image->Id;
$Image_Small = $value->Image->Small;
$Image_Medium = $value->Image->Medium;
$Affiliate_Rate = $value->Affiliate->Rate;
$Review_Count = $value->Review->Count;
$Review_Rate = $value->Review->Rate;
$Review_Url = $value->Review->Url;
$Price = $value->Price;
$Price_currency = $value->Price["currency"];
$PriceLabel_taxIncluded = $value->PriceLabel["taxIncluded"];
$PriceLabel_FixedPrice = $value->PriceLabel->FixedPrice;
$PriceLabel_SalePrice = $value->PriceLabel->SalePrice;
// 現在カテゴリIDまでのルートからのパス構造
foreach($value->CategoryIdPath->Category as $Category){
$Category_Id[] = $Category->Id;
}
$Brands_Name = mb_convert_encoding($value->Brands->Name, "EUC-JP", "UTF-8");
// 現在ブランドIDまでのルートからのパス構造
foreach($value->Brands->Path->Brand as $Brand){
$Brand_Id[] = $Brand->Id;
}
$Point_Amount = $value->Point->Amount;
$Point_Times = $value->Point->Times;
$Shipping_Code = $value->Shipping->Code;
$Shipping_Name = mb_convert_encoding($value->Shipping->Name, "EUC-JP", "UTF-8");
// module=pricerangesを指定したときのみ
if(is_object($xmldata->Result->Modules->PriceRanges->Price->Range)){
foreach($xmldata->Result->Modules->PriceRanges->Price->Range as $range){
$Price_Range_From[] = $range->From;
$Price_Range_To[] = $range->To;
$Price_Range_Hits[] = $range->Hits;
}
}
// module=subcategoriesを指定したときのみ
if(is_object($xmldata->Result->Modules->Subcategories->Children->Child)){
$Subcategories_Category_Id = $xmldata->Result->Modules->Subcategories->Path->Category->Id;
$Subcategories_Category_Name = $xmldata->Result->Modules->Subcategories->Path->Category->Name;
foreach($xmldata->Result->Modules->Subcategories->Children->Child as $child){
$Subcategories_Child_Id[] = $child->Id;
$Subcategories_Child_Name[] = mb_convert_encoding($child->Name, "EUC-JP", "UTF-8");
$Subcategories_Child_Hits[] = $child->Hits;
}
}

print $Hit_index."<br />";
print $Url."<br />";
print $Name."<br />";
print $Description."<br />";
print $Headline."<br />";
print $Availability."<br />";
print $Code."<br />";
print $PersonId."<br />";
print $ProductId."<br />";
print $JanCode."<br />";
print $IsbnCode."<br />";
print $Model."<br />";
print $Store_Id."<br />";
print $Store_Url."<br />";
print $Store_Name."<br />";
// 支払い方法
for($i = 0; $i < count($Payment_Method_Code); $i++){
print $Payment_Method_Code[$i]."<br />";
print $Payment_Method_Name[$i]."<br />";
}
print $Store_IsBestStore."<br />";
print $Store_Ratings_Rate."<br />";
print $Store_Ratings_Count."<br />";
print $Store_Image."<br />";
print $Store_Image_Medium."<br />";
print $Image_Id."<br />";
print $Image_Small."<br />";
print $Image_Medium."<br />";
print $Affiliate_Rate."<br />";
print $Review_Count."<br />";
print $Review_Rate."<br />";
print $Review_Url."<br />";
print $Price."<br />";
print $Price_currency."<br />";
print $PriceLabel_taxIncluded."<br />";
print $PriceLabel_FixedPrice."<br />";
print $PriceLabel_SalePrice."<br />";
// 現在カテゴリIDまでのルートからのパス構造
for($i = 0; $i < count($Category_Id); $i++){
print $Category_Id[$i]."<br />";
}
print $Brands_Name."<br />";
// 現在ブランドIDまでのルートからのパス構造
for($i = 0; $i < count($Brand_Id); $i++){
print $Brand_Id[$i]."<br />";
}
print $Point_Amount."<br />";
print $Point_Times."<br />";
print $Shipping_Code."<br />";
print $Shipping_Name."<br />";
// module=pricerangesを指定したときのみ
for($i = 0; $i < count($Price_Range_From); $i++){
print $Price_Range_From[$i]."<br />";
print $Price_Range_To[$i]."<br />";
print $Price_Range_Hits[$i]."<br />";
}
// module=subcategoriesを指定したときのみ
print $Subcategories_Category_Id."<br />";
print $Subcategories_Category_Name."<br />";
for($i = 0; $i < count($Child_Id); $i++){
print $Subcategories_Child_Id[$i]."<br />";
print $Subcategories_Child_Name[$i]."<br />";
print $Subcategories_Child_Hits[$i]."<br />";
}
}
?>


参考URL
Yahoo!デベロッパーネットワーク - ショッピング - 商品検索

appid アプリケーションID(必須)
affiliate_type Yahoo! JAPANアフィリエイト(yid)とバリューコマースアフィリエイト(vc)の選択。
affiliate_id Yahoo! JAPANアフィリエイトIDもしくは、バリューコマースアフィリエイトIDを入力。
callback JSONPとして出力する際のコールバック関数名をUTF-8でエンコードした文字列を入力
query キーワード検索。(UTF-8エンコード)
type 検索結果 all 全クエリー文字 any クエリー文字のうちいずれかを含む
jan JANコード
isbn ISBNコード
category_id カテゴリID
product_id 製品ID
person_id 人物ID
store_id ストアのID
price_from 最低価格
price_to 最高価格
hits 取得する検索結果数 最大値50
offset 何件目から表示させるか(1件目は0)
sort price 商品価格 name ストア名 score おすすめ順 sold 売れ筋順 affiliate アフィリエイト料率順 review_count レビュー数順 )降順/昇順 -/+をUTF-8にエンコード
affiliate_from 最低料率
affiliate_to 最高料率
module 価格幅、サブカテゴリとサブカテゴリに含まれる商品数のリストを取得 priceranges subcategories
availability 在庫絞り込み 在庫有 availability=1
discount セール中商品絞り込み discount=1
shipping デフォルトは設定なし shipping=1が送料無料。

Hit_index 検索結果の順番
Url 商品URL
Name 商品名
Description 商品説明
Headline キャッチコピー
Availability 購入できるか (instock/outofstock)
Code 商品コード
PersonId 人物ID
ProductId 製品ID
JanCode JANコード
IsbnCode ISBN(書籍コード)
Model 型番
Store_Id ストアID
Store_Url ストアURL
Store_Name ストア名
Payment_Method_Code 1=クレジットカード、2=銀行振込、4=商品代引、8=郵便振替、16=Yahoo!ウォレット、 32=モバイルSuica、64=コンビニ支払い、128=ペイジー対応 bitwise論理和
Payment_Method_Name クレジットカード、銀行振込、商品代引、郵便振替、Yahoo!ウォレット登録済クレジットカード、モバイルSuica、コンビニ支払い、ペイジー
Store_IsBestStore ベストストアかどうか(true/false)
Store_Ratings_Rate ストア評価【0.0-5.0】まで0.5刻み
Store_Ratings_Count 評価人数
Store_Image 画像ID
Store_Image_Medium 120×30サイズの画像URL
Image_Id 画像ID
Image_Small 76×76サイズの画像URL
Image_Medium 146×146サイズの画像URL
Affiliate_Rate アフィリエイト料率 0.1刻み
Review_Count レビュー保持数
Review_Rate レビュー平均評価
Review_Url レビューページへのURL/アフィリエイトURL
Price 価格
Price_currency 通貨
PriceLabel_taxIncluded 税込み価格かどうか
PriceLabel_FixedPrice 定価
PriceLabel_SalePrice セール価格
Category_Id 現在カテゴリIDまでのルートからのパス構造
Brands_Name ブランド名
Brand_Id 現在ブランドIDまでのルートからのパス構造
Point_Amount ポイント数
Point_Times ポイント倍率
Shipping_Code 条件コード 1=設定なし 2=送料無料 3=条件付送料無料
Shipping_Name テキストで以下のいずれかの値 設定なし/送料無料/条件付送料無料
Price_Range_From 最低価格 (module=subcategoriesを指定したときのみ)
Price_Range_To 最高価格 (module=subcategoriesを指定したときのみ)
Price_Range_Hits 検索結果に含まれるアイテム数 (module=subcategoriesを指定したときのみ)
Subcategories_Category_Id 親カテゴリID (module=subcategoriesを指定したときのみ)
Subcategories_Category_Name 親カテゴリ名 (module=subcategoriesを指定したときのみ)
Subcategories_Child_Id 子カテゴリID (module=subcategoriesを指定したときのみ)
Subcategories_Child_Name 子カテゴリ名 (module=subcategoriesを指定したときのみ)
Subcategories_Child_Hits カテゴリ以下アイテム数 (module=subcategoriesを指定したときのみ)
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS