#!/usr/bin/perl use Unicode::Japanese; $s = new Unicode::Japanese; #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 #〓 #〓 楽天API版 アフィリエイトプログラムPerl Ver1.0.0 #〓 #〓 Copyright (C) 2006-2007 るびねっと All Rights Reserved. #〓 #〓 #〓 ■必要ファイル #〓 index.cgi(755) #〓 |-- data(755) #〓 |-- 000〜999.dat(644) ENCODE:EUC #〓 |-- init.dat(666) #〓 #〓 #〓〓〓〓〓〓〓初期設定01 [START] 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 $engnurl = "http://01.pickupitem.net" ; # サイトURL -- 最後のスラッシュは含めないで下さい $sitename = "ショッピングのお勧めピックアップを紹介" ; # サイトタイトル $desc_kk = "人気のショッピングアイテムの最新情報をお届けしています。「$sitename 」" ; #サイトTOPのdesc $h1_title = "$desc_kk"; #〓ここにlinkURLを入れてね〓〓 $link_raku01 ="http://01.pickupitem.net/"; $link_rakumoba02 ="http://02.pickupitem.net";#最後の/を含めない! $link_bidders03 ="http://03.pickupitem.net/"; $link_ama04 ="http://05.pickupitem.net/"; $link_amamoba05 ="http://05.pickupitem.net/i";#最後の/を含めない! $link_yahoosho06 ="http://www.kaukauyo.net/"; #〓//ここにlinkURLを入れてね〓〓 #〓raku_adランダム設定〓〓 &RANDOMBANNER; $aaa_rand = rand @randambanner; $raku_ad = qq{
↓↓お勧め特集ページはこちらです↓↓
$randambanner[$aaa_rand]
}; #〓raku_adランダム設定〓〓 $tabele_title01 = qq{ 人気アイテム }; #ランダムキーワードが出るところ $tabele_title02 = qq{ }; #使っていない! $tabele_title03 = qq{話題のアイテム}; #○○○○001位のタイトル部分 $list_text = "ピックアップ" ; # ○○○○001位の○○○の部分 $sub_td_atama =qq{$h1_title}; #使っていない! $donna_keyword = "ピックアップキーワード"; #ヘッダーの一部に使用「○○○を元」にの○○○の部分 $kensaku_mado =qq{
楽天で探す
楽天市場
}; #ID:matunaga1234 $linktext01 ="TOP"; $linktext02 ="楽天商品検索(携帯対応)"; $linktext03 ="Bidders商品検索"; $linktext04 ="Amazon商品検索"; $linktext05 ="Amazon商品検索(携帯対応)"; $linktext06 ="YAHOOSHOPPING商品検索"; $linkurl01 ="$link_raku01"; $linkurl02 ="$link_rakumoba02"; $linkurl03 ="$link_bidders03"; $linkurl04 ="$link_ama04"; $linkurl05 ="$link_amamoba05"; $linkurl06 ="$link_yahoosho06"; $mobilepage = "$link_rakumoba02"; $categorigori =qq{ }; #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 #━━━━━━━━━━━━━━━━━━━━━━━ 初期設定02 [START] ━━━━━━━━━━━━━━━━━━━━━━━━ # 初期設定は必ずこちらで変更を行って下さい # $name1 = "shop" ; # アドレスの第一階層の名前を指定して下さい $name2 = "num" ; # アドレスの第二階層の名前を指定して下さい $name3 = "index" ; # アドレスの第三階層の名前を指定して下さい $hitnum = "7" ; # 1ページあたりの取得件数( 1-30までの整数 ) $maxdat = "100" ; # datファイルの最高 -- ○○○.datの最高数字(頭の0は含まない) $mykeynum = "3" ; # titleを取得する番号 1なら一番上の検索結果がtitleとなる( 1-$hitnum+1までの整数 ) $encode = "EUC-JP" ; # 標準文字コード -- 必要がなければ変更しないで下さい $user_id = "037ffac3.524a9908" ; # ランキング使用時の旧楽天ID(matunaga1234) $form_id = "0392c600.f09ce646" ; # 検索フォーム時のID(matunaga1234) $affileID = "0407c297.d78ccf37.0407c298.03372780" ; # ウェブサービス用アフィリエイトID -matunaga1234- このIDにポイントが付加されます $developID1 = "a24b9385bdd8df661de25902c99ba6d4" ; # ウェブサービス用デベロップID1 dev02-- 重複を防ぐためユニークなIDを使用して下さい $developID2 = "a24b9385bdd8df661de25902c99ba6d4" ; # ウェブサービス用デベロップID2 -dev02- 重複を防ぐためユニークなIDを使用して下さい $randflag = "1" ; # SUBページのメニュー表示 0:ランダム表示なし 1:ランダム表示あり $etcurl = "" ; # imageファイルやCSSなどを別場所に設置している場合にはそのURLを指定して下さい # ( 同じ場所に設置している場合には空のままにしておいて下さい ) if( $etcurl eq "" ){ $etcurl = $engnurl ; } $js = $etcurl. "/style/std.js" ; # jsファイルへのパスを指定して下さい $css = $etcurl. "/style/base.css" ; # cssファイルへのパスを指定して下さい $no_gif = $etcurl. "/images/no.gif" ; # no_image画像へのパスを指定して下さい $prev = $etcurl. "/images/prev.gif" ; # prev画像へのパスを指定して下さい $next = $etcurl. "/images/next.gif" ; # next画像へのパスを指定して下さい $spacer = $etcurl. "/images/spacer.gif" ; $footnikakuyo = qq{


このサイトにつきまして・・・$sitenameは、$donna_keywordを元にショッピングサイト最大級 楽天市場の商品を紹介しているサイトです。データの取得に楽天ウェブサービスを利用しております。ご安心してサイト閲覧をお楽しみ下さい。


}; #━━━━━━━━━━━━━━━━━━━━━━━━ 初期設定 [END] ━━━━━━━━━━━━━━━━━━━━━━━━ #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 #━━━━━━━━━━━━━━━━━━━━━━━━ Main[START] ━━━━━━━━━━━━━━━━━━━━━━━━━ #******************************************************** #問い合わせオブジェク作成 use CGI; use LWP::Simple; my $q = new CGI; #******************************************************** #POSTデータ取得 $catenum = $q->param('catenum'); $cateidx = $q->param('cateidx'); $pagenum = $q->param('pagenum'); #******************************************************** #不正なアドレスはエラー表示 if ($catenum eq ""){ &ERROR ; exit ; } #******************************************************** #developIDの連続使用を回避 open FH, "+ ; if( $lastdevID eq $developID1 ){ $developID = $developID2 ; } else { $developID = $developID1 ; } truncate( FH , 0 ) ; seek( FH , 0, 0); print FH "$developID" ; close FH ; #******************************************************** #HTML 出力開始 if ($catenum eq "top" ){ &toppage ; } else { &subpage ; } exit; #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #━━━━━━━━━━━━━━━━━━━━━━━ SKIN ━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub PrintSkin{ $item_body .= < $product
価格:$price
SHOP:$shopnm
$itemdetail
$impress
▲ トップへ ItemSkin } #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #━━━━━━━━━━━━━━━━━━━━━━━ TOPPAGE ━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub toppage{ #******************************************************** # index.ctgファイル読み込み $rancate = int(rand($maxdat-1)) + 1 ; if( length($rancate) == 1 ){ $rancate = "00" .$rancate ; } elsif( length($rancate) == 2 ){ $rancate = "0" .$rancate ; } my $index_ctg = "./data/${rancate}.dat" ; my $index_idx = 0 ; my $rancount = 0 ; my @index_data = (); open( IN, $index_ctg ) or &ERROR ; while(){ $line = $_; chop($line); $index_idx = $index_idx + 1; $randnum = int(rand(4)) ; if( $randnum == 0 ){ $cate_menu .= "
  • " .$line. "
  • \n" ; $rancount += 1 ; } } if( $rancount == 0 ){ $cate_menu = "
  • " .$line. "
  • \n" ; } close(IN); for( $z=1; $z<=$maxdat; $z++ ){ if( length($z) == 1 ){ $datnum = "00" .$z ; } elsif( length($z) == 2 ){ $datnum = "0" .$z ; } else { $datnum = $z ; } $list_menu .= "
  • ${list_text}${datnum}
  • " ; } #******************************************************** # タイトルタグ セット $title = $sitename ; $desc = "$desc_kk" ; $keyw = "" ; &PrintRanking ; #******************************************************** #TOPPAGE HTML出力開始 print "Content-type: text/html\n"; print "Charset: " .$encode. "\n\n"; print < $title
    $raku_ad

    価格比較、商品比較、最安値、限定商品探しにぜひご活用下さい!

    $tabele_title03 $tabele_title01
    $list_menu $cate_menu

    $kensaku_mado
    お気に入りに追加
    LINK
    カテゴリー
    $categorigori
    お勧め
    $Ranking_TOPpage

    TOPHTMLBody &Footer; print "\n" ; print "\n" ; exit; } #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #━━━━━━━━━━━━━━━━━━━━━━━ SUBPAGE ━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub subpage{ $linkpage1 = "${engnurl}/${name1}${catenum}/${name2}" ; $linkpage2 = "${engnurl}/${name1}${catenum}/${name2}${cateidx}/${name3}" ; &PrintRanking ; #******************************************************** # index.ctgファイル読み込み my $index_ctg = "./data/${catenum}.dat" ; my $rancount = 0; my $index_idx = 0; my @index_data = (); open( IN, $index_ctg ) or &ERROR ; while(){ $line = $_; chop($line); $index_idx = $index_idx + 1; if( $index_idx == $cateidx ){ $key = $line; } if( $randflag eq "1" ){ $randnum = int(rand(2)) ; } else { $randnum = 0 ; } if( $randnum == 0 ){ $menulist .= "
  • " .$line. "
  • \n" ; $rancount += 1 ; } } if( $rancount == 0 ){ $menulist .= "
  • " .$line. "
  • \n" ; } close(IN); if( $key eq "" ){ &ERROR; exit; } #******************************************************** # APIに接続 $kword = $key ; $kword = Unicode::Japanese->new($kword, 'euc' )->utf8; $kword =~ s/([^\w ])/"%" . unpack("H2", $1)/eg; $kword =~ tr/ /+/; $url = "http://api.rakuten.co.jp/rws/1.7/rest" ."?developerId=".$developID ."&affiliateId=".$affileID ."&operation=ItemSearch" ."&version=2007-04-11" ."&keyword=".$kword ."&sort=-updateTimestamp" ."&hits=".$hitnum ."&page=".$pagenum ."&orFlag=0" ; $data = get($url) ; $_ = $data ; ( $count ) = m/(.*?)<\/count>/o ; ( $page ) = m/(.*?)<\/page>/o ; ( $first ) = m/(.*?)<\/first>/o ; ( $last ) = m/(.*?)<\/last>/o ; ( $pagecount ) = m/(.*?)<\/pageCount>/o ; push(@items , $data =~ m/(.*?)<\/Item>/smg ) ; #******************************************************** # PageLink $mycount = 1 ; $linknum = 10 ; $prevpage = $pagenum - 1 ; $nextpage = $pagenum + 1 ; if( $prevpage < 1 ){ $prev_text = "     " ; } else { $prev_text = "\"前\"  前へ"; } if( $nextpage > $pagecount ){ $next_text = "     " ; } else { $next_text = "次へ  \"次\""; } if( $pagenum-$linknum < 1 ){ $startpage = 1 ; } else { $startpage = $pagenum-$linknum; } for( $i=$startpage; $i<($pagenum+$linknum) ; $i++ ){ if( $i == $pagenum ){ $pagelink .= "  " .$i. "  " ; } else { $pagelink .= "  " .$i. "  " ; } $mycount += 1 ; if( $mycount > 15 || $i >= $pagecount ){ last ; } } $pagelink = $prev_text. " " .$pagelink. " " .$next_text ; #検索結果が0件の場合は検索フォームを表示 if( $count < 1 || $page > $pagecount ){ $item_body = "
    ※ 残念ですが、該当商品がございません。

    お手数ですが違うカテゴリをお選び頂くか、検索窓から商品を再度ご指定下さい。
    " ; $item_body .= '
    楽天で探す
    楽天市場
    ' ; } else { $item_body = "全 " .$count. " 点  " ; $item_body .= "" .$first. " 〜 " .$last. " 件表示中  " ; $item_body .= "" .$page. " / " .$pagecount. "

    " ; if( $pagecount > 1 ){ $item_body .= $pagelink. "

    " ; } $itemcount = 0 ; foreach my $value ( @items ){ %item = $value =~ m/<(.*?)>(.*?)<\/\1>/g ; $product = $item{'itemName'} ; $product = Unicode::Japanese->new($product, 'utf8' )->euc; $price = $item{'itemPrice'} ; $imagel = $item{'mediumImageUrl'} ; $imageflag = $item{'imageFlag'} ; $tax = $item{'taxFlag'} ; $post = $item{'postageFlag'} ; $shopnm = $item{'shopName'} ; $shopnm = Unicode::Japanese->new($shopnm, 'utf8' )->euc; $shopurl = $item{'shopUrl'} ; $itemdetail = $item{'itemCaption'} ; $itemdetail = Unicode::Japanese->new($itemdetail, 'utf8' )->euc; $itemdetail =~ s/ / /g ; $itemdetail = substr( $itemdetail , 0 , 500 ). "......." ; $link = $item{'affiliateUrl'} ; 1 while $price =~ s/(.*\d)(\d\d\d)/$1,$2/; if( $imagel eq "" || $imageflag == "0" ){ $imagel = $no_gif ; } if( $tax == "0" ){ $tax = "税込" ; } elsif( $tax == "1" ){ $tax = "税別" ; } else { $tax = "" ; } if( $post == "0" ){ $post = "送料込" ; } elsif( $post == "1" ){ $post = "送料別" ; } else { $post = "" ; } if( $itemcount < $mykeynum ){ $mykeyword = $product ; } &PrintSkin ; $itemcount = $itemcount + 1; } if( $pagecount > 1 ){ $item_body .= "
    " .$pagelink. "

    " ; } } #******************************************************** # タイトルタグ セット $title = "|" .$key. "|" .$mykeyword. "[ " .$sitename. " ]" ; $desc = "" ; $keyw = "" ; #$desc = $title ; #$keyw = $mykeyword ; #******************************************************** # SUBPAGE HTML出力開始 print "Content-type: text/html\n"; print "Charset: " .$encode. "\n\n"; print < $title
    $raku_ad

    価格比較、商品比較、最安値、限定商品探しにぜひご活用下さい!

    $key関連商品の検索結果・・・
    $item_body

    $kensaku_mado
    お気に入りに追加
    LINK
    カテゴリー
    $categorigori
    お勧め
    $Ranking_SUBpage
    キーワード
      $menulist
    SUBHTML &Footer ; print "\n" ; print "\n" ; exit; } # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #━━━━━━━━━━━━━━━━━━━━━━━ FOOTER ━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub Footer{ print <' ; $Ranking_SUBpage = '' ; } #━━━━━━━━━━━━━━━━━━━━━━━ エラー表示 ━━━━━━━━━━━━━━━━━━━━━━━━━━ sub ERROR{ print "Content-type: text/html\n"; print "Charset: " .$encode. "\n\n"; print "\n"; print " \n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n" ; print "ERROR\n"; print "\n"; print "
    無効なアドレスが入力されました。お手数ですが、再度URLをご確認下さい。
    \n" ; print "\n" ; exit ; } #━━━━━━━━━━━━━━━━━━━━━━━ ランダムバナー表示 ━━━━━━━━━━━━━━━━━━━━━━━━━━ sub RANDOMBANNER{ $randambanner[0] = qq{ }; $randambanner[1] = qq{ }; $randambanner[2] = qq{ }; $randambanner[3] = qq{ }; $randambanner[4] = qq{ }; $randambanner[5] = qq{ }; $randambanner[6] = qq{ }; $randambanner[7] = qq{ }; $randambanner[8] = qq{ }; $randambanner[9] = qq{ }; $randambanner[10] = qq{ }; $randambanner[11] = qq{ }; $randambanner[12] = qq{ }; $randambanner[13] = qq{ }; $randambanner[14] = qq{ }; $randambanner[15] = qq{ }; $randambanner[16] = qq{ }; $randambanner[17] = qq{ }; $randambanner[18] = qq{ }; $randambanner[19] = qq{ }; $randambanner[20] = qq{ }; $randambanner[21] = qq{ }; $randambanner[22] = qq{ }; $randambanner[23] = qq{ }; $randambanner[24] = qq{ }; $randambanner[25] = qq{ }; $randambanner[26] = qq{ }; $randambanner[27] = qq{ }; $randambanner[28] = qq{ }; $randambanner[29] = qq{ }; $randambanner[30] = qq{ }; $randambanner[31] = qq{ }; $randambanner[32] = qq{ }; $randambanner[33] = qq{ }; $randambanner[34] = qq{ }; $randambanner[35] = qq{ }; $randambanner[36] = qq{ }; $randambanner[37] = qq{ }; $randambanner[38] = qq{ }; $randambanner[39] = qq{ }; $randambanner[40] = qq{ }; $randambanner[41] = qq{ }; $randambanner[42] = qq{ }; $randambanner[43] = qq{ }; $randambanner[44] = qq{ }; $randambanner[45] = qq{ }; $randambanner[46] = qq{ }; $randambanner[47] = qq{ }; $randambanner[48] = qq{ }; $randambanner[49] = qq{ }; $randambanner[50] = qq{ }; $randambanner[51] = qq{ }; $randambanner[52] = qq{ }; $randambanner[53] = qq{ }; $randambanner[54] = qq{ }; $randambanner[55] = qq{ }; $randambanner[56] = qq{ }; $randambanner[57] = qq{ }; $randambanner[58] = qq{ }; $randambanner[59] = qq{ }; $randambanner[60] = qq{ }; $randambanner[61] = qq{ }; $randambanner[62] = qq{ }; $randambanner[63] = qq{ }; $randambanner[64] = qq{ }; $randambanner[65] = qq{ }; $randambanner[66] = qq{ }; $randambanner[67] = qq{ }; $randambanner[68] = qq{ }; $randambanner[69] = qq{ }; $randambanner[70] = qq{ }; $randambanner[71] = qq{ }; $randambanner[72] = qq{ }; $randambanner[73] = qq{ }; $randambanner[74] = qq{ }; $randambanner[75] = qq{ }; $randambanner[76] = qq{ }; $randambanner[77] = qq{ }; $randambanner[78] = qq{ }; $randambanner[79] = qq{ }; $randambanner[80] = qq{ }; $randambanner[81] = qq{ }; $randambanner[82] = qq{ }; $randambanner[83] = qq{ }; $randambanner[84] = qq{ }; $randambanner[85] = qq{ }; $randambanner[86] = qq{ }; $randambanner[87] = qq{ }; $randambanner[88] = qq{ }; $randambanner[89] = qq{ }; $randambanner[90] = qq{ }; $randambanner[91] = qq{ }; $randambanner[92] = qq{ }; $randambanner[93] = qq{ }; $randambanner[94] = qq{ }; $randambanner[95] = qq{ }; $randambanner[96] = qq{ }; $randambanner[97] = qq{ }; $randambanner[98] = qq{ }; $randambanner[99] = qq{ }; $randambanner[100] = qq{ }; $randambanner[101] = qq{ }; $randambanner[102] = qq{ }; $randambanner[103] = qq{ }; $randambanner[104] = qq{ }; $randambanner[105] = qq{ }; $randambanner[106] = qq{ }; $randambanner[107] = qq{ }; $randambanner[108] = qq{ }; $randambanner[109] = qq{ }; $randambanner[110] = qq{ }; $randambanner[111] = qq{ }; $randambanner[112] = qq{ }; $randambanner[113] = qq{ }; $randambanner[114] = qq{ }; $randambanner[115] = qq{ }; $randambanner[116] = qq{ }; $randambanner[117] = qq{ }; $randambanner[118] = qq{ }; $randambanner[119] = qq{ }; $randambanner[120] = qq{ }; $randambanner[121] = qq{ }; $randambanner[122] = qq{ }; $randambanner[123] = qq{ }; $randambanner[124] = qq{ }; $randambanner[125] = qq{ }; $randambanner[126] = qq{ }; $randambanner[127] = qq{ }; $randambanner[128] = qq{ }; $randambanner[129] = qq{ }; $randambanner[130] = qq{ }; $randambanner[131] = qq{ }; $randambanner[132] = qq{ }; $randambanner[133] = qq{ }; $randambanner[134] = qq{ }; }