#!/usr/bin/perl # nlday.cgi ver.0.4a(指定日の検索キーワードを見るスクリプト)2004年3月24日版 # 配布場所:http://homepage3.nifty.com/cinema1987/ #NMZ.slogのパス $logfile = "./NMZ.slog"; #namazu.cgiのURL $namazu = "http://foo.bar.ne.jp/~hoge/namazu/namazu.cgi"; #このスクリプトの名前 $script = "nlday.cgi"; #------設定終了---------------------------------------------------------------------------- open (LOG, "$logfile") || &error("NMZ.slogがありません。"); @lines = ; close(LOG); &decode; $myear = $FORM{'myear'}; $mmonth = $FORM{'mmonth'}; $mday = $FORM{'mday'}; $length = length $myear; $count = 0; if(($myear eq "") || ($mmonth eq "") || ($mday eq "")){ ($year, $month, $day) = (localtime(time-24*60*60))[5,4,3]; $year = $year + 1900; }else{ if(($myear =~ /\D/) || ($mmonth =~ /\D/) ||($mday =~ /\D/)){ &error("半角数字を入力してください。"); }elsif(($myear < 1997) || ($length < 4)){ &error("年指定に誤りがあります。"); } $year = $myear; $month = $mmonth; if($month > 12 || $month < 1){ &error("月指定に誤りがあります。");} $month = $month -1; $day = $mday; &leap; if(($month == 3 || $month == 5 || $month == 8 || $month == 10) && ($day > 30)){ &error("日指定に誤りがあります。");} elsif(($month == 0 || $month == 2 || $month == 4 || $month == 6 || $month == 7 || $month == 9 || $month == 11) && ($day > 31)){ &error("日指定に誤りがあります。");} elsif($month == 1 && $day > $month_days){ &error("日指定に誤りがあります。");} } @month_en = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec); $mymonth = $month_en[$month]; $month = $month + 1; if($day==1 || $day == 2 || $day==3 ||$day==4 || $day==5 || $day==6 || $day==7 || $day==8 || $day==9){ $day = " " . $day;} @yesterday = ($mymonth, $day); #月日でgrepする @word = grep/@yesterday/,@lines; print "Content-type: text/html\n\n"; print <<"EOF"; 検索キーワードと検索回数

$year年$month月$day日の検索キーワード

\n"; print "
\n"; print "

\n"; print "

\n"; print "検索回数:$count回\n"; } #うるう年計算サブルーチン sub leap { $lyear = $year; if(($lyear % 4 ) == 0 && ($lyear % 100) != 0 || ($lyear % 400) == 0) {$month_days = 29; }else{ $month_days = 28; } } sub error { print "Content-type: text/html\n\n"; print <<"EOF"; エラー

$_[0]


戻る
EOF exit; }