#!/usr/bin/perl #======Namazu検索キーワード順位別表示スクリプト [nlsort.cgi ver.0.14a(2004年3月24日)]=== #Copyright(C)2001- 2002 hiro All Rights Reserved. #スクリプト配布場所 #URI:http://homepage3.nifty.com/cinema1987/data/howto2.htm Namazu(Perl版)設置ノウハウ #MAIL:fwnk1502@mb.infoweb.ne.jp #必ずEUCコードで保存すること! #フリーで改造、再配布も自由ですが、著作権を放棄しているわけではありません。 $ver = "nlsort.cgi ver0.14a"; #-----------------設定項目--------------------------------------------- #表示する順位 $max = "30"; #ホームページのURI $page = 'http://www.foo.bar.ne.jp/~hoge/'; #ホームページのタイトル $title = 'My Homepage'; # NMZ.slogのパス $logfile = "NMZ.slog"; #このスクリプトが表示するページの名前。$maxには上で記入した数字が入ります。 $nlsort_title = "検索キーワードベスト$max"; # namazu.cgiのURI $namazu = "http://foo.bar.ne.jp/~hoge/namazu/namazu.cgi"; #インデックスフォルダの名前。複数インデックスの場合だけ、インデックスフォルダの名前を書いてください。 $index = ""; #--------設定終了-------------------------------------------------------- #--------処理開始-------------------------------------------------------- print "Content-type: text/html\n\n"; open (LOG, "$logfile") || &error ("ログファイルが開けません。パス設定を確認してください。"); @lines = ; close(LOG); $logsize = (-s $logfile); $logsize = int ($logsize / 1024); foreach $data (@lines) { chomp($data); ($word,$hit,$ip,$date) = split(/\t/,$data); undef $ip; undef $date; undef $hit; if ($word ne '') { $word{$word}++ } } print "\n"; print "\n"; print "$title $nlsort_title\n"; print <<"EOF";

$title:$nlsort_title

検索回数が多いキーワードの上位 $max 位を表示しています。
キーワードをクリックすると、Namazuにジャンプして検索します。


EOF $search = ''; $num = 0; foreach $word (sort { $word{$b} <=> $word{$a} } keys %word) { $num++; if ($num > $max) { print ""; last; } if ($search eq '') { $number = "1"; } if ($search == $word{$word}) { $number = ""; } else { $number = $num; } $search = $word{$word}; #URLエンコーディング $word2 = $word; $word2 =~ s/(\W)/'%'.unpack("H2", $1)/ego; $word =~ s//>/g; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } print <<"EOF";
順位検索キーワード検索回数
$number$word$search
NMZ.slogサイズは $logsize KBです。

[検索に戻る] [$titleに戻る]
$ver
EOF #--------------------------------------------------------------------------------------------- sub error { print <<"EOF"; エラー

$_[0]


[$titleに戻る]
$ver
EOF exit; }