#!/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-JP #〓 $categoriiii =qq{
}; #〓〓〓初期設定01〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 $engnurl = "http://20.xn--n8jl021zgpau62bk49d.com" ; # サイトURL -- 最後のスラッシュは含めないで下さい #〓ここにlinkURLを入れてね $link_raku01 ="http://mi.xn--n8jl021zgpau62bk49d.com/"; $link_rakumoba02 ="http://mb.xn--n8jl021zgpau62bk49d.com";#最後の/を含めない! $link_bidders03 ="http://20.xn--n8jl021zgpau62bk49d.com/"; $link_ama04 ="http://aw.xn--n8jl021zgpau62bk49d.com/"; $link_amamoba05 ="http://aw.xn--n8jl021zgpau62bk49d.com/i/"; $link_yahoosho06 ="http://www.townsshop.com/"; $linktext01 ="TOP"; $linktext02 ="amazon商品検索"; $linktext03 ="楽天商品検索"; $linktext04 ="アマゾン商品検索(携帯対応)"; $linktext05 ="楽天商品検索(携帯対応)"; $linktext06 ="YAHOOSHOPPING商品検索"; $linkurl01 ="$link_bidders03"; $linkurl02 ="$link_ama04"; $linkurl03 ="$link_raku01"; $linkurl04 ="$link_amamoba05"; $linkurl05 ="$link_rakumoba02"; $linkurl06 ="$link_yahoosho06"; $sitename = "お買い得商品比較なら20.お買い得商品.com" ; # サイトタイトル $kk_sitename_j = "お買い得商品いっぱい!ショッピングサイトビッダーズやAWS2.0参加優良SHOPの商品をご紹介しております。"; $desc_bb = "$kk_sitename_j" ; $h1_title = "$desc_bb"; $raku_ad = qq{ 人気商品はコレだ!ビッダーズヒットランキング }; #■人気商品はコレだ!ビッダーズヒットランキング会場 http://www.bidders.co.jp/affiliate/campaign.html $tabele_title01 = qq{人気! }; #ランダムで出てくるTOPページのキーワードのタイトル $tabele_title02 = qq{ピックアップ}; #使っていない $tabele_title03 = qq{ ランクイン }; #○○位のタイトルの部分 $list_text = "ランク" ; # ○○xxx位の○○の部分TOPページリンク文字 $donna_keyword = "ランクインのキーワード"; #ヘッダーの一部に使用「○○○を元」にの○○○の部分 $sub_desc ="${mykeyword}関連の商品「$kk_sitename_j」";#サブページのDescription $sub_td_atama ="$desc_bb"; $kensaku_mado = qq{


}; $Ranking_TOPpage=qq{
ネットでレンタル!TSUTAYA DISCAS

海外旅行・韓国・済州島・チェジュ・登山・山・自然
}; # ツタヤ レア旅 $Ranking_SUBpage = qq{
ネットでレンタル!TSUTAYA DISCAS

海外旅行・韓国・済州島・チェジュ・登山・山・自然
}; #ツタヤ  レア旅 #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 #━━━━━━━━━━━━━━━━━━━━━━━ 初期設定 [START] ━━━━━━━━━━━━━━━━━━━━━━━━ # 初期設定は必ずこちらで変更を行って下さい # $name1 = "s" ; # アドレスの第一階層の名前を指定して下さい $name2 = "n" ; # アドレスの第二階層の名前を指定して下さい $name3 = "index" ; # アドレスの第三階層の名前を指定して下さい $hitnum = "13" ; # 1ページあたりの取得件数( 1-30までの整数 ) $maxdat = "100" ; # datファイルの最高 -- ○○○.datの最高数字(頭の0は含まない) $mykeynum = "5" ; # titleを取得する番号 1なら一番上の検索結果がtitleとなる( 1-$hitnum+1までの整数 ) $encode = "EUC-JP" ; # 標準文字コード -- 必要がなければ変更しないで下さい $ui = "27719" ; $affid = "0mb0Pm8sYiU_cW_odwHLEvG--" ; $linkid = "3620249" ; $randflag = "1" ; # SUBページのメニュー表示 0:ランダム表示なし 1:ランダム表示あり $etcurl = "" ; # imageファイルやCSSなどを別場所に設置している場合にはそのURLを指定して下さい # ( 同じ場所に設置している場合には空のままにしておいて下さい ) if( $etcurl eq "" ){ $etcurl = $engnurl ; } $js = $etcurl. "/style/std.js" ; # jsファイルへのパスを指定して下さい $css = $etcurl. "/style/default.css" ; # cssファイルへのパスを指定して下さい $no_gif = $etcurl. "/images/no.gif" ; # no_image画像へのパスを指定して下さい $prev = $etcurl. "/images/prev.gif" ; # prev画像へのパスを指定して下さい $next = $etcurl. "/images/next.gif" ; # next画像へのパスを指定して下さい $acc_rk =qq{ }; #アクセス解析のURLを指定して下さい。 #━━━━━━━━━━━━━━━━━━━━━━━━ 初期設定 [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 ; } #******************************************************** #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}位
  • " ; } #******************************************************** # TOPPAGE タイトルタグ セット $title = $kk_sitename_j ; $desc = $desc_bb ; $keyw = "" ; #******************************************************** # 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
    お勧め
    $Ranking_TOPpage

    TOPHTMLBody &Footer; print "\n" ; print "\n" ; exit; } #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #━━━━━━━━━━━━━━━━━━━━━━━ SUBPAGE ━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub subpage{ $linkpage1 = "${engnurl}/${name1}${catenum}/${name2}" ; $linkpage2 = "${engnurl}/${name1}${catenum}/${name2}${cateidx}/${name3}" ; #******************************************************** # 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 =~ s/([^\w ])/"%" . unpack("H2", $1)/eg; $kword =~ tr/ /+/; $url = "http://ws.a20.jp/bin/aws" ."?charset=".$encode ."&cmt=Y" ."&ipp=".$hitnum ."&keyword=".$kword ."&page=".$pagenum ."&ui=".$ui ."&affid=".$affid ."&linkid=".$linkid ; eval { local $SIG{ALRM} = sub { die "timeout0" }; alarm 30; $data = get($url) ; alarm 0; }; alarm 0; if($@) { if($@ =~ /timeout0/) { &ERROR2; exit ; } else { &ERROR2; exit ; } } $_ = $data ; ( $count ) = m/(.*?)<\/TotalCount>/o ; $pagecount = int( $count / $hitnum ) ; $mymod = $count % $hitnum ; if( $mymod > 0 ){ $pagecount += 1 ; } push(@items , $data =~ m/(.*?)<\/ItemInfo>/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 .= '


    ' ; $item_body .= "$categoriiii"; } else { $item_body = "全 " .$count. " 点  " ; #$item_body .= "" .$first. " 〜 " .$last. " 件表示中  " ; #$item_body .= "" .$page. " / " .$pagecount. "

    " ; $item_body .= "Page " .$pagenum. " / " .$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{'ImageUrl'} ; $tax = $item{'taxFlag'} ; $post = $item{'postageFlag'} ; $shopnm = $item{'CorpName'} ; $shopnm = Unicode::Japanese->new($shopnm, 'utf8' )->euc; $shopurl = $item{'shopUrl'} ; $impress = $item{'Impression'} ; if($impress ne "" ){ $impress = substr( $impress , 9 , length($impress)-12 ) ; } $itemdetail = $item{'ItemComment'} ; $itemdetail = Unicode::Japanese->new($itemdetail, 'utf8' )->euc; $itemdetail =~ s/ / /g ; $itemdetail = substr( $itemdetail , 0 , 500 ). "......." ; $link = $item{'ItemUrl'} ; 1 while $price =~ s/(.*\d)(\d\d\d)/$1,$2/; if( $imagel eq "" ){ $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 = $mykeyword. "の**${kk_sitename_j}" ; $keyw = $mykeyword ; #******************************************************** #SUB HTML出力開始 print "Content-type: text/html\n"; print "Charset: " .$encode. "\n\n"; print < $title
    $raku_ad

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

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

    $kensaku_mado
    お気に入りに追加
    LINK
    お勧め
    $Ranking_SUBpage
    キーワード
      $menulist

    SUBHTML &Footer ; print "\n" ; print "\n" ; exit; } # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #━━━━━━━━━━━━━━━━━━━━━━━ FOOTER ━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub Footer{ print <
    このサイトにつきまして・・・${sitename}は、$donna_keywordを元に日本最大級ショッピングサイトビッダーズや、アフィリエイト2.0参加優良企業の商品を紹介するサイトです。ご安心してサイト閲覧をお楽しみ下さい。


    Copyright (c) 2007 ${sitename} All Rights Reserved.
    $acc_rk Copyright } #━━━━━━━━━━━━━━━━━━━━━━━ エラー表示 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 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 ; } #━━━━━━━━━━━━━━━━━━━━━━━ エラー表示2 ━━━━━━━━━━━━━━━━━━━━━━━━━━ sub ERROR2{ 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 "BUSY\n"; print "\n"; print "
    只今 リクエストが混み合っています。 お手数ですが、少しお待ちになってから、ブラウザの『更新』ボタンで、再読み込みを行ってみてください。
    \n" ; print "\n" ; exit ; }