#!/usr/local/bin/perl
#┌─────────────────────────────────
#│ DAY COUNTER-EX MANAGER v3.3 (2001/10/20)
#│ Copyright(C) KENT WEB 2001
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#└─────────────────────────────────
$ver = 'DAY COUNTER-EX v3.3';
#┌─────────────────────────────────
#│ [注意事項]
#│ 1. このスクリプトはフリーソフトです。このスクリプトを使用した
#│ いかなる損害に対して作者は一切の責任を負いません。
#│ 2. 設置に関する質問はサポート掲示板にお願いいたします。
#│ 直接メールによる質問は一切お受けいたしておりません。
#└─────────────────────────────────
#============#
# 設定項目 #
#============#
# ログファイル
$logfile = "./dayx.dat";
# 日次記録ファイル
$dayfile = "./day.dat";
# 月次記録ファイル
$monfile = "./mon.dat";
# 集計一覧からの戻り先
$home = "../index.html";
# 集計一覧のタイトル名
$title = "旭川アクセス集計一覧";
# タイトル文字色
$t_color = "#008080";
# グラフ画像
# → 絶対パスなら http:// から書く
$graph1 = "./blue.gif";
$graph2 = "./red.gif";
# 月間グラフ幅の調整
# 1か月平均 4桁で50〜100 5桁で200〜500程度
$mKEY = 50;
# 日計グラフ幅の調整
# 1日平均 2桁で1〜2 3桁で5〜10 4桁で30〜60程度
$dKEY = 2;
# bodyタグ
$body = '
';
#============#
# 設定完了 #
#============#
# ログファイル読み込み
open(IN,"$logfile") || &error("Open Error : $logfile");
$data = ;
close(IN);
($day,$yes,$to,$all,$week,$ip) = split(/<>/, $data);
# 時間取得
($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time);
@week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
$date = sprintf("%02d/%02d (%s) ",$mon+1,$mday,$week[$wday]);
$D_Y = sprintf("%04d/%02d",$year+1900,$mon+1);
# 日次アクセスファイルを読み込み
open(IN,"$dayfile") || &error("Open Error : $dayfile");
@DayFile = ;
close(IN);
push(@DayFile,"$date<>$to<>\n");
# 月間アクセスファイルを読み込み
open(IN,"$monfile") || &error("Open Error : $monfile");
@MonFile = ;
close(IN);
$under = pop(@MonFile);
if ($under =~ /^(\d+)\/(\d+)<>(\d+)/) { $Y="$1/$2"; $C=$3; }
if ($Y eq $D_Y) {
$C2 = $C + $to;
push(@MonFile,"$Y<>$C2<>\n");
} else {
push(@MonFile,"$D_Y<>$to<>\n");
}
# HTMLを表示
&header;
print <<"EOM";
EOM
$flag=0;
$tochu=0;
$i=0;
foreach (@DayFile) {
$i++;
chop;
($m_d,$dcnt) = split(/<>/);
if ($i == 1 && $m_d =~ /^(\d+)\/(\d+)/) {
if ($2 != 1) { $tochu=1; }
}
# グラフ幅を指定
$width = $dcnt / $dKEY;
$width = int($width);
# 桁処理
$dcnt = &filler($dcnt);
# 色変更
$m_d =~ s/Sat/Sat<\/font>/;
$m_d =~ s/Sun/Sun<\/font>/;
print "| $m_d | $dcnt | \n";
print " |
\n";
}
print <<"EOM";
| 年月 | 月間 |
日平均 | グラフ |
EOM
$flag=0;
foreach (@MonFile) {
($y_m,$mcnt) = split(/<>/);
($year,$mon) = split(/\//, $y_m);
if ($_ eq "$MonFile[$#MonFile]") {
if ($day == 1) { $avr = ' - '; }
else {
if ($tochu) { $waru = @DayFile-1; }
else { $waru = $day-1; }
$avr = int (($C / $waru) +0.5);
$avr = &filler($avr);
}
} else {
$lastday = &LastDay("$year","$mon");
$avr = int (($mcnt / $lastday) +0.5);
$avr = &filler($avr);
}
# グラフ幅を指定
$width = $mcnt / $mKEY;
$width = int($width);
# 桁処理
$mcnt = &filler($mcnt);
if ($year ne "$year2") { print "
|
\n"; }
print "| $y_m | $mcnt | ";
print "$avr | ";
print "  |
\n";
$year2 = $year;
}
## 著作権表示(削除改変禁止)
print <<"EOM";