#!/usr/bin/perl
#┌─────────────────────────────────
#│ DAY COUNTER-EX MANAGER v3.41 (2002/07/15)
#│ Copyright(C) KENT WEB 2002
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#└─────────────────────────────────
$ver = 'DAY COUNTER-EX v3.41';
#┌─────────────────────────────────
#│ [注意事項]
#│ 1. このスクリプトはフリーソフトです。このスクリプトを使用した
#│ いかなる損害に対して作者は一切の責任を負いません。
#│ 2. 設置に関する質問はサポート掲示板にお願いいたします。
#│ 直接メールによる質問は一切お受けいたしておりません。
#└─────────────────────────────────
#============#
# 設定項目 #
#============#
# ログファイル
$logfile = "./dayx.dat";
# 日次記録ファイル
$dayfile = "./day.dat";
# 月次記録ファイル
$monfile = "./mon.dat";
# 集計一覧からの戻り先
$home = "../home.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) = split(/<>/, $data);
# 時間取得
$ENV{'TZ'} = "JST-9";
($mday,$mon,$year,$wday) = (localtime(time))[3..6];
@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; }
}
# グラフ幅を指定
if ($dcnt > 0) { $width = int($dcnt / $dKEY); }
else { $width=1; }
if ($width < 1) { $width=1; }
# 桁処理
$dcnt = &filler($dcnt);
# 色変更
$m_d =~ s/Sat/Sat<\/font>/;
$m_d =~ s/Sun/Sun<\/font>/;
print "| $m_d | $dcnt | ";
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; }
if ($C > 0) {
$avr = int (($C / $waru) +0.5);
$avr = &filler($avr);
} else { $avr = ' - '; }
}
} else {
$lastday = &LastDay($year, $mon);
$avr = int (($mcnt / $lastday) +0.5);
$avr = &filler($avr);
}
# グラフ幅を指定
if ($mcnt > 0) { $width = int($mcnt / $mKEY); }
else { $width=1; }
if ($width < 1) { $width=1; }
# 桁処理
$mcnt = &filler($mcnt);
if ($year ne $year2) { print "
|
\n"; }
print "| $y_m | $mcnt | ";
print "$avr | ";
print "  |
\n";
$year2 = $year;
}
## 著作権表示(削除改変禁止)
print <<"EOM";