#!/usr/bin/perl #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 #〓 #〓 ビッターズAPI版 アフィリエイトプログラムPerl Ver1.0.0 #〓 #〓 Copyright (C) 2006-2007 るびねっと All Rights Reserved. #〓 #〓 #〓 ■必要ファイル #〓 index.cgi(755) #〓 |-- data(755) #〓 |-- 000~999.dat(644) ENCODE:UTF-8 #〓 #〓 #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 #〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 #━━━━━━━━━━━━━━━━━━━━━━━ 初期設定 [START] ━━━━━━━━━━━━━━━━━━━━━━━━ # 初期設定は必ずこちらで変更を行って下さい # $engnurl = "http://bd.xn--q9j801jlhcg7g1wv.com" ; # サイトURL -- 最後のスラッシュは含めないで下さい $name1 = "s" ; # アドレスの第一階層の名前を指定して下さい $name2 = "n" ; # アドレスの第二階層の名前を指定して下さい $name3 = "index" ; # アドレスの第三階層の名前を指定して下さい $hitnum = "29" ; # 1ページあたりの取得件数( 1-30までの整数 ) $maxdat = "130" ; # datファイルの最高 -- ○○○.datの最高数字(頭の0は含まない) $mykeynum = "2" ; # titleを取得する番号 1なら一番上の検索結果がtitleとなる( 1-$hitnum+1までの整数 ) $encode = "utf-8" ; # 標準文字コード -- 必要がなければ変更しないで下さい $ui = "27719" ; $affid = "0mb0Pm8sYiU_cW_odwHLEvG--" ; $linkid = "3620249" ; $sitename = "■■bd.激安な情報.com--BD--激安な商品、限定な商品、送料無料などの商品を紹介しております。**" ; # サイトタイトル $list_text = "激安な商品情報ランキング" ; # TOPページリンク文字 $randflag = "1" ; # SUBページのメニュー表示 0:ランダム表示なし 1:ランダム表示あり $etcurl = "" ; # imageファイルやCSSなどを別場所に設置している場合にはそのURLを指定して下さい # ( 同じ場所に設置している場合には空のままにしておいて下さい ) if( $etcurl eq "" ){ $etcurl = $engnurl ; } $js = $etcurl. "/style/std.js" ; # jsファイルへのパスを指定して下さい $css = $etcurl. "/style/std.css" ; # cssファイルへのパスを指定して下さい $no_gif = $etcurl. "/images/no.gif" ; # no_image画像へのパスを指定して下さい $prev = $etcurl. "/images/prev.gif" ; # prev画像へのパスを指定して下さい $next = $etcurl. "/images/next.gif" ; # next画像へのパスを指定して下さい #━━━━━━━━━━━━━━━━━━━━━━━━ 初期設定 [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
$product
販売店・・・$shopnm
$itemdetail
$price


詳細やレビューはこちらへどうぞ

$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 = "bd.激安な情報.com--BD--では、激安な商品、限定な商品、送料無料などを紹介しております。" ; $keyw = "" ; #******************************************************** # HTML出力開始 print "Content-type: text/html\n"; print "Charset: " .$encode. "\n\n"; print < $title

    ${sitename} では、*これがbd.激安な情報.com**のお勧めと言われるキーワードを元に話題の商品を多数ご案内しております。 商品情報は毎日更新中です!


    お気に入りがきっと見つかる!ビッダーズでお買い物
    ◆ お勧めキーワード ◆
      $cate_menu
    ●お勧めビッダーズ●
    ■注目ワードランキング ■
      $list_menu
    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 "timeout1" }; alarm 2; $data = get($url) ; alarm 0; }; alarm 0; if($@) { if($@ =~ /timeout1/) { eval { local $SIG{ALRM} = sub { die "timeout2" }; alarm 2; $data = get($url) ; alarm 0; }; alarm 0; } else { &ERROR2; exit ; } } if($@) { if($@ =~ /timeout2/) { eval { local $SIG{ALRM} = sub { die "timeout3" }; alarm 2; $data = get($url) ; alarm 0; }; alarm 0; } else { &ERROR2; exit ; } } if($@) { if($@ =~ /timeout3/) { eval { local $SIG{ALRM} = sub { die "timeout4" }; alarm 2; $data = get($url) ; alarm 0; }; alarm 0; } else { &ERROR2; exit ; } } if($@) { if($@ =~ /timeout4/) { eval { local $SIG{ALRM} = sub { die "timeout5" }; alarm 2; $data = get($url) ; alarm 0; }; alarm 0; } else { &ERROR2; exit ; } } if($@) { if($@ =~ /timeout5/) { eval { local $SIG{ALRM} = sub { die "timeout0" }; alarm 2; $data = get($url) ; alarm 0; }; alarm 0; } else { &ERROR2; exit ; } } 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 .= '


    ' ; } 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'} ; $price = $item{'ItemPrice'} ; $imagel = $item{'ImageUrl'} ; $tax = $item{'taxFlag'} ; $post = $item{'postageFlag'} ; $shopnm = $item{'CorpName'} ; $shopurl = $item{'shopUrl'} ; $impress = $item{'Impression'} ; if($impress ne "" ){ $impress = substr( $impress , 9 , length($impress)-12 ) ; } $itemdetail = $item{'ItemComment'} ; $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. "の**bd.激安な情報.com**商品特集!激安商品もあるよ!" ; $keyw = $mykeyword ; #******************************************************** # HTML出力開始 print "Content-type: text/html\n"; print "Charset: " .$encode. "\n\n"; print < $title

    [ $key ] $mykeyword特集!


    **bd.激安な情報.com**BD人気 $key特集!



      $menulist

    $Ranking_SUBpage
    お気に入りがきっと見つかる!ビッダーズでお買い物
    $key関連商品を表示中!
    $item_body
    SUBHTML &Footer ; print "\n" ; print "\n" ; exit; } # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #━━━━━━━━━━━━━━━━━━━━━━━ FOOTER ━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub Footer{ print <
    このサイトにつきまして・・・${sitename}は、人気キーワードを元に日本最大級 ビッダーズの商品を紹介するサイトです。ご安心してサイト閲覧をお楽しみ下さい。


    Copyright (c) 2007 ${sitename} All Rights Reserved.
    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 ; }